Skip to content

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+
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文件打开模式,如 rwa
name文件名,如 test.txt
softspace一个布尔值,指示是否在文件末尾添加空格来确保每行具有相同数量的字符。

常用方法

  • write:将任何字符串写入一个打开的文件,不会在字符串的结尾添加换行符
  • read:读取一个字符串,可传如参数表示这一次读取的字节数。
  • tell:返回文件对象当前所处的位置,从文件开头开始算起,以字节为单位。
  • seek:移动文件指针到指定位置,可传入两个参数,第一个参数表示偏移量,第二个参数表示偏移量以什么为基准,0 为文件开头,1 为当前位置,2 为文件末尾。

文件和目录管理

Python 的文件和目录操作的函数都在 os 包下。

函数名说明
rename重命名文件或目录
remove删除文件
mkdir创建目录
chdir改变当前目录
getcwd获取当前目录
rmdir删除目录
path.exists判断是否存在