在工作中常常会涉及到文件操作,例如日志记录,生成测试报告等。

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)  将文件重命名