Python之文件读写。
读写文件使用IO操作。
Python内置了读写的函数,用法和C语言兼容
读文件
f=open('D:/1code/1.txt','r')
标识符'r'表示读
如果文件不存在,open()函数就会抛出一个IOError的错误,并且给出错误嘛和详细信息告诉你文件不存在
如果文件打开成功,接下来,调用read()方法可以一次读取文件的全部内容,Python吧内容读到内存,用一个str对象表示
>>> f.read()
'hello'
最后一步是调用close()函数方法关闭文件,文件使用完毕后必须关闭,因为文件对象会调用操作系统的资源
>>>f.close()
由于文件读写时都可能产生IOError,一旦出错,后面的f.close()就不会被调用。
所以需要进行异常处理,Python引入了with语句来自动帮我们调用close()方法
with open ('/path/to/file','r') as f:
<span style="white-space:pre"> </span>print(f.read())
调用read()会一次性读取文件的全部内容,如果文件有10G,内存就爆了,所以,要保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。另外,调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。因此,要根据需要决定怎么调用。
如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()最方便:
for line in f.readlines():
print(line.strip()) # 把末尾的'\n'删掉
>>> f = open('D:/1code/1.txt', 'w')
>>> f.write('Hello, world!')
>>> f.close()
你可以反复调用write()来写入文件,但是务必要调用f.close()来关闭文件。当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了。所以,还是用with语句来得保险:
with open('D:/1code/1.txt', 'w') as f:
f.write('Hello, world!')