在工作中常常会涉及到文件操作,例如日志记录,生成测试报告等。
Python常用的文件操作主要包括打开、读取,写入、关闭。
一、打开文件
使用open(file,mode,encoding)方法,其中:
- file:指定文件路径
- mode:文件打开模式
- encoding:文件编码方式
例如: f = open(file='test.txt', mode='r', encoding='utf-8')
open()方法返回一个文件操作的句柄f,
file参数值可以跟上文件路径。
mode可以取值:r、a、w、rb、ab、wb:
- r:读取模式,如果被打开的文件不存在,会报错
- w:覆盖写入,如果被打开的文件不存在,会创建文件
- a:追加写入,如果被打开的文件不存在,会创建文件
- rb、ab、wb使用二进制模式打开文件,比如图片和视频,不用指定encoding
二、文件读取
文件以r模式打开以后,要如何读取文件中的内容呢?常用三种方法:
- f.read() 读取文件全部内容
- f.readline() 读取一行
- f.readlines() 把所有内容按行读取,存放在一个列表中
三、文件写入
以w模式打开文件后,使用 f.write('1111')
四、关闭文件
文件关闭操作相比于文件打开就简单很多了,只需要关闭文件句柄即可。 f.close()
从上面可以看到,每次文件打开,最终都需要使用close关闭文件,这样操作无疑是麻烦的,假设项目有N多个文件需要进行读写操作,而操作完后,我们忘记关闭文件,程序将会对内存造成巨大的开销。
为了解决上面的问题,我们可以使用另一种文件操作方法:上下文管理器
关键字:with
使用上下文管理器实现文件读取操作:
with open('test.txt', 'r', 'utf-8') as f:
content = f.read()
可以看到,上下文管理器和原来的open方法使用差别并不大,但是上下文管理器有一个非常大的优势,那就是当with下面的代码执行完后,会自动关闭文件。
扩展:os模块与文件目录相关的操作
1、os.listdir(path) 返回path目录下所有的文件或子文件夹
2、os.remove(file) 删除文件
3、os.mkdir(dir) 创建目录,要创建的父目录必须存在
4、os.makedirs(dir) 创建目录,若父目录不存在则创建父目录
5、os.rmdir(dir) 仅能删除空目录
6、os.rename(file_path,file_new_path) 将文件重命名