1.读文件 使用Python来读写文件是非常简单的操作. 我们使用open()函数来打开⼀个文件, 获取到文件的句柄. 然后通过文件句柄就可以进行各种各样的操作了。
注意: 使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。
实例:
创建test.txt文本文件
床前明月光
疑是地上霜
举头望明月
低头思故乡
在test.txt同级目录下创建file_read.py
于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally,来保证释放资源。
# -*- coding: utf-8 -*-
# @Time : 2022/4/19 11:30
# @File : file_read.py
# @Software : PyCharm
try:
f = open('test.txt', 'r', encoding='utf-8')
print(f.read())
finally:
if f:
f.close()
运行结果:
床前明月光
疑是地上霜
举头望明月
低头思故乡
但是每次都这么写实在太繁琐,所以,Python引入了with语句来自动帮我们调用close()方法:
with open('test.txt', 'r', encoding='utf-8') as f:
print(f.read())
如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()更方便。
with open('test.txt', 'r', encoding='utf-8') as f:
for line in f.readlines():
# 把末尾的'\n'删掉
print(line.strip())
上面读取的都是文本文件,并且是UTF-8编码的文本文件。要读取二进制文件,比如图片、视频等等,用'rb'模式打开文件即可。
try:
f = open('logo.png', 'rb')
print(f.read())
finally:
if f:
f.close()
2.写文件
写文件和读文件是一样的,唯一区别是调用open()函数时,传入标识符'w'或者'wb'表示写文本文件或写二进制文件。
# -*- coding: utf-8 -*-
# @Time : 2022/4/19 11:54
# @File : file_write.py
# @Software : PyCharm
with open('test.txt', 'w', encoding='utf-8') as f:
f.write('你好, world!')
每次使用 f.write() 方法并运行代码时,之前文本内容都将被覆盖,如果我们希望追加到文件末尾怎么办?可以传入'a'以追加(append)模式写入。
with open('test.txt', 'a', encoding='utf-8') as f:
f.write('床前明月光\n')
f.write('疑是地上霜\n')
f.write('举头望明月\n')
f.write('低头思故乡\n')