IO
文件处理
Python 可通过 open
函数打开一个文件进行操作。
常用模式
文件打开模式有两种,一种是 t
(以文本模式打开,默认打开方式),一种是 b
(以二进制模式打开)
模式 | 支持二进制打开 | 说明 |
---|---|---|
r | ✅ | 以只读方式打开文件。文件的指针将会放在文件的开头。(默认模式)。 |
w | ✅ | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a | ✅ | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件进行写入。 |
x | ✅ | 打开一个文件用于只写。如果该文件已存在则抛出异常。如果该文件不存在,创建新文件。 |
r+ | ✅ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
w+ | ✅ | 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
x+ | ✅ | 打开一个文件用于读写。如果该文件已存在则抛出异常。如果该文件不存在,创建新文件。 |
a+ | ✅ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件进行写入。 |
TIP
顺序没有要求,即 r+
可以写成 +r
。
mermaid
flowchart TB 打开文件 --> For{为了?} -- 读取内容 --> r For -- 写入内容 --> WRITE_TRUNCATE{清空?} -- Yes --> w WRITE_TRUNCATE -- No --> a For -- 写入和读取内容 --> WRITE_READ_TRUNCATE{清空?} -- Yes --> w+ WRITE_READ_TRUNCATE -- No --> WRITE_READ_APPEND{指针位置?} -- 末尾 --> a+ WRITE_READ_APPEND -- 开头 --> r+
文件对象属性
属性 | 描述 |
---|---|
closed | 如果文件已被关闭则为 False ,否则为 True |
encoding | 文件的编码方式,如果文件没有编码方式则为 None |
mode | 文件打开模式,如 r 、w 、a 等 |
name | 文件名,如 test.txt |
softspace | 一个布尔值,指示是否在文件末尾添加空格来确保每行具有相同数量的字符。 |
常用方法
write
:将任何字符串写入一个打开的文件,不会在字符串的结尾添加换行符read
:读取一个字符串,可传如参数表示这一次读取的字节数。tell
:返回文件对象当前所处的位置,从文件开头开始算起,以字节为单位。seek
:移动文件指针到指定位置,可传入两个参数,第一个参数表示偏移量,第二个参数表示偏移量以什么为基准,0
为文件开头,1
为当前位置,2
为文件末尾。
文件和目录管理
Python 的文件和目录操作的函数都在 os
包下。
函数名 | 说明 |
---|---|
rename | 重命名文件或目录 |
remove | 删除文件 |
mkdir | 创建目录 |
chdir | 改变当前目录 |
getcwd | 获取当前目录 |
rmdir | 删除目录 |
path.exists | 判断是否存在 |