1.读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。
2.要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符:如 f = open('/Users/michael/test.txt', 'r')
r是读的意思 可以用w写来替换。files需要带上文件的路径哦,如 files=r'G:/test/file1.txt'
3.如果文件不存在,open()函数就会抛出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在例子如下:
f=open('/Users/michael/notfound.txt', 'r')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: '/Users/michael/notfound.txt'
4.如果文件open成功了,接下来我们需要调用 read()
方法将文件读取到内存中,用一个str
对象来表示`
5.注意在使用read()的时候如果文件过大会造成撑爆内存的,建议使用read(size)多次夺取
6.最后一步是调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的
f.close()
注意:由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try … finally来实现:
7.注意我们更多的是使用 with open(file,r)
为什么呢因为可以省略close(),使用with open() 会主动帮我们关闭
8.我们来说说 readline() 与 readlines()的区别
readline() 每次只读取一行,而 readlines() 一行一行的是读取所有的文件放在一个list 返回
9.写文件 使用 write()
10.要读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数,例如,读取GBK编码的文件:
>>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk')
>>> f.read()
11.总结:以后读写文件都使用with open语句,不要再像以前那样用f = open()这种语句了
对于多个文件的读写,可以写成以下两种方式:
with open('/home/xbwang/Desktop/output_measures.txt','r') as f:
open('/home/xbwang/Desktop/output_measures2.txt','r') as f1:
open('/home/xbwang/Desktop/output_output_bk.txt','r') as f2:
........
........
........
或者
with open('/home/xbwang/Desktop/output_measures.txt','r') as f:
........
with open('/home/xbwang/Desktop/output_measures2.txt','r') as f1:
........
with open('/home/xbwang/Desktop/output_output_bk.txt','r') as
........f2: