python中对文件操作,使用open()函数打开文件,然后进行后续处理,如读写等
1 open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
参数说明:
- file: 必需,文件路径(相对或者绝对路径)。
- mode: 可选,文件打开模式,默认读方式打开
- buffering: 设置缓冲
- encoding: 一般使用utf8
- errors: 报错级别
- newline: 区分换行符
- closefd: 传入的file参数类型
- opener:
一般在使用时候之需关注前面2个即可,当涉及到编码格式时,encooding需要设置。
mode 参数有:
模式 | 描述 |
---|---|
t | 文本模式 (默认)。 |
x | 写模式,新建一个文件,如果该文件已存在则会报错。 |
b | 二进制模式。 |
+ | 打开一个文件进行更新(可读可写)。 |
U | 通用换行模式(Python 3 不支持)。 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
默认为文本模式,如果要以二进制模式打开,加上 b 。
下面看一下具体实例
1 def writefile(): 2 filename = 'username.txt' 3 f = open(filename,'w',encoding='utf-8') #以写方式打开 4 f.write('学习python对文件操作') 5 f.close() #切记文件不操作后要关闭 6 7 8 def writeaddfile(): 9 filename = 'username.txt' 10 f = open(filename, 'a',encoding='utf-8') # 以追加方式打开 11 f.write('对文件进行追加写入') 12 13 def readfile(): 14 filename = 'username.txt' 15 f = open(filename,'r',encoding='utf-8') # 以读方式打开 16 print(f.read()) 17 f.close() 18 19 def wrfile(): 20 filename = 'username.txt' 21 f = open(filename,'r+',encoding='utf-8') #写读方式打开 22 f.write('对文件进行读写') 23 # print(f.read()) 24 f.close()
如果是二进制读写,则在模式后面加b,如下:
1 def writeerfile(): 2 filename = 'username.txt' 3 f = open(filename,'wb') #以二进制方式写入,注意当使用二进制时候就不能设置encoding参数,读取使用要使用二进制方式读取 4 f.write('学习python对文件操作'.encode('utf-8')) 5 f.close() #切记文件不操作后要关闭
每次操作文件后要关闭文件经常会忘记,可以使用with 关键字打开文件,在文件不操作时会自动关闭文件,同时with打开文件还同时支持打开2个文件
1 def withfile(): 2 filename1= 'log1.txt' 3 filename2 = 'log2.txt' 4 with open(filename1,'w') as f1,open(filename2,'w') as f2: 5 f1.write('aaa') 6 f2.write('ddd')
对文件的基本操作,一般使用到的方法为具体为:
close()关闭文件
fileno()文件描述符
flush()刷新文件内部缓存区
isstty()判断文件是否同意tty设置
read()读取指定文件字节数据
readable()是否可读
readline()仅读取一行数据
seek()指定文件中指针位置
tell()获取指针位置
writeable()是否可写
truncate()截取数据,仅保留指定之前数据