open函数:对文件进行读写操作前,先打开文件,获取文件的句柄:
open(file, mode, encoding, buffering)
参数说明
file_name:一个包含了你要访问的文件路径及文件名称的字符串值。尽量使用绝对路径
access_mode:打开文件的方式:这个参数是非强制的,默认文件访问模式为只读(r)
打开文件模式:
r:只读模式
w:只写模式【不可读,不存在,则创建;存在,则清空重写】
x:只写模式【不可读,不存在,则创建;存在,则报错】
a:追加模式【不可读,不存在,则创建;存在,则追加写入】
“+”表示可同时读写文件
r+:读写
w+:读写【不存在,则创建;存在,则清空重写】
x+:读写【不存在,则创建;存在,则报错】
a+:读写【不存在,则创建;存在,则追加写入】
“b”以字节的方式操作
rb或r+b:以二进制格式打开
wb或w+b:以二进制格式写入【不可读,不存在,则创建;存在,则清空重写】
xb或x+b:以二进制格式写入【不可读,不存在,则创建;存在,则报错】
ab或a+b:以二进制格式追加写入【不可读,不存在,则创建;存在,则追加写入】
注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型
buffering:
- buffering默认为-1,系统默认的全缓冲
- buffering可以设置为大于1的任意整数,字节数为buffering的全缓冲
- buffering=1,设置为行缓冲模式
- buffering=0, 设置为无缓冲模式
获取文件信息:
open.close():刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。
open.closed:判断文件是否关闭;关闭返回True,未关闭返回folse
open.mode:返回被打开文件的访问模式
open.truncate(size):用于截断文件,如果指定了可选参数 size,则表示截断文件为 size 个字符。 如果没有指定 size,则从当前位置起截断;截断之后 size 后面的所有字符被删除。
如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。
open.name:返回文件的名称
open.encoding:返回文件打开的编码格式
open.fileno():返回文件在系统中的编号
open.tell():返回光标当前所在的位置;以字符长度进行计数
open.seek(num1, num2):将光标移动到某个位置;num1:移动的字符长度; num2:偏移的位置起始,0、1、2代表文件开始位置、当前位置、文件末尾
open.flush():将缓存区的内容写入到磁盘
对文件进行读操作:
open.read(size):从光标开始读取内容;size参数:读取的字符长度,未填写则读取所有
open.readline():读取文件中一行的内容
open.readlines():将文件中所有的内容读取到内存中【一般不建议使用】
open.readable():判断文件打开方式是否可读;True:可读。False:不可读
对文件进行写操作:
open.write(size):从光标所在的位置开始写入,默认是不加换行的
open.writelines(seq):把seq(序列)的内容全部写到文件中(多行一次性写入)。也不会自动加入换行符。注意:序列中的内容也必须是字符串类型的数据,才能成功写入文件。
open.writable():判断文件打开方式是否可写;True:可写。False:不可写