open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。
# 读写文件最好用 with...open...操作,这样最安全
# 而且还不需要关闭文件
with open(path,'r')as f:
f.read()
# 一次读取整个文件,当然可以设置读取大小,如f.read(128)
f.readline()
# 一次读取一行
f.readlines()
# 一次读取整个文件,单按行读取
# 这里的moed控制着读写的方式
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
基本的有三种读写方式,分别是读,写,追加,而默认状态为‘t’,表示文本模式。此外还有另外两种可搭配的方式:
一种是+表示可读可写
一种是b表示bit的二进制文件。以下是基本的三种方式的组合
如下图所示:
模式 | 描述 |
---|---|
r | 打开只读文件,该文件必须存在。 |
r+ | 打开可读可写的文件,该文件必须存在(这里的写文件是指将之前的文件覆盖。 |
rt | 打开只读文本文件,该文本必须存在。 |
rt+ | 读写打开一个文本文件,允许读和写,该文件必须存在(这里的写文件是指将之前的文件覆盖。 |
rb | 只读打开一个二进制文件,,该文本必须存在。 |
rb+ | 读写打开一个二进制文件,允许读和写,该文件必须存在(这里的写文件是指将之前的文件覆盖。 |
w:清空文件内容,然后写入
x|新建文件,然后写入(如果文件存在,那直接失败)
模式 | 描述 |
---|---|
w | 打开只写文件,若文件存在,则文件长度清零,即文件内容会消失,若文件不存在则建立该文件。 |
x | 新建文件,然后写入(如果文件存在,那直接失败) |
w+ | 打开可读写文件,若文件存在,则文件长度清零,即文件内容会消失,若文件不存在则建立该文件(这里的读文件,同样需要使用rewind()函数)。 |
wt | 打开只写文本文件,若文件存在,则文件长度清零,即文件内容会消失,若文件不存在则建立该文件。 |
wt+ | 打开可读写文本文件,若文件存在,则文件长度清零,即文件内容会消失,若文件不存在则建立该文件。 |
wb | 打开只写二进制文件,若文件存在,则文件长度清零,即文件内容会消失,若文件不存在则建立该文件。 |
wb+ | 打开可读写文件,若文件存在,则文件长度清零,即文件内容会消失,若文件不存在则建立该文件。 |
模式 | 描述 |
---|---|
a | 以附加的方式打开只写文件,若文件不存在,则建立文件,存在则在文件尾部添加数据,即追加内容。 |
a+ | 以附加的方式打开可读写文件,不存在则建立文件,存在则写入数据到文件尾(这里的读文件,同样需要使用rewind()函数,但是写文件不需要rewind()函数,a是追加)。 |
at | 二进制数据的追加,不存在则创建,只能写。 |
at+ | 读写打开一个文本文件,允许读或在文本末追加数据(这里的读文件,同样需要使用rewind()函数,但是写文件不需要rewind()函数,a是追加)。 |
ab | 二进制数据的追加,不存在则创建,只能写。 |
ab+ | 读写打开一个二进制文件,不存在则创建,允许读或在文本末追加数据(这里的读文件,同样需要使用rewind()函数,但是写文件不需要rewind()函数,a是追加)。 |
读写模式是python进行文件操作中必备的一个属性,因此我们务必要掌握他。其实他并不是很理解,可能新手的话需要稍加思索。总之,记住以下口诀:
三种基本方式读写与追加,两种组合搭配是B和+。B代表二进制文件,+是可读又可写。上面三可搭配B与+,组成文件读写模式。