Python中怎么读写文件
python中对文件的操作大概分为三步:打开文件、操作文件(读、写、追加写入)、关闭文件。
1、无论对文件做哪种操作,操作前首先要保证文件被打开了,即需要一个打开的操作。
例:open(XXX.txt)
打开文件的同时,还要给文件赋一个操作权限,你需要对文件做什么,就赋什么权限:
文件打开模式 | 描述 |
---|---|
r | 以只读模式打开文件,并将文件指针指向文件头;如果文件不存在会报错 |
w | 以只写模式打开文件,并将文件指针指向文件头;如果文件存在则将其内容清空,如果文件不存在则创建 |
a | 以只追加可写模式打开文件,并将文件指针指向文件尾部;如果文件不存在则创建 |
r+ | 在r的基础上增加了可写功能,能读能写,但是打开不存在的文件会报错;先读再写,写在文件末尾,先写再读,写的时候直接覆盖第一行内容 |
w+ | 在w的基础上增加了可读功能,使用w+打开时,默认就给文件先清空了;先读因为已经清空,读不到,先写再读,指针在文档末尾,也读不到,需要修改文件指针位置才能读到 |
a+ | 在a的基础上增加了可读功能,能读能写,不会清空以前的文件;打开文件后,默认文件指针在文件末尾,所以打开后直接读读不到内容,需要移动文件指针:f.seek(0) ,给文件指针设置为文件开始位置,再读就能读到内容了 |
b | 读写二进制文件(默认是t,表示文本),需要与上面几种模式搭配使用,如ab,wb, ab, ab+(POSIX系统,包括Linux都会忽略该字符) |
例:f = open('XXX.txt','r') # 打开文件XXX.txt,并赋予读文件的权限
f = open('XXX.txt','w') # 打开文件XXX.txt,并赋予从头编写文件的权限
2、打开文件后,就可以对文件进行读写操作,首先是读操作
res = f.read() # 将文件中的值读出来赋值给res
res = f.readlines() # 一行一行的读文件
然后是写操作
f.write('abc'+'\n') # 给文件写入:abc
3、关闭文件,文件打开并操作完成后,需要关闭。
f.close()
4、还可以用with方法,打开文件用with,用完之后,自动关闭文件
with open('ab.txt') as f:
f.read()
5、文件指针
1)打开文件后,调用方法f.readlines(),文件指针跳转到文件末尾,这时再想读这个文件,读出来的就都是空的了,需要移动文件指针
f.seek(0) #把文件指针设置到文件开头位置,再读就可以读到内容了
2)当前指针的位置:
f.tell() #返回当前指针的位置
上述方法返回的位置,用的时候:
point = f.seek()
f.seek(point)
6、清空文件内容
f.truncate()
7、刷新缓冲区,直接写到磁盘里
f.flust()
有时候执行 f.write('xxx') 后,文件内并没有写入内容,是因为有缓存,等缓存满了再一起写到磁盘,write方法后,加一句 f.flust() ,就能立马写入文件了。