I/O文件处理
1、从文件中读取数据
有时我们会将一些数据存储在文本文件中,比如测试用例,等需要用到这些数据的时候,就可以从文本中读取出来。如下,我们存了一个文档数据test_ata.txt:
打开文件的语句如下:
file_name:代表要打开的文件的文件名称
mode:打开文件的模式
下面我们将详细介绍一下常用的打开文件模式:
需要注意的是,在 “w” 模式下,如果要写入的文件不存在,则会新建一个该名称的文件。
1)读取整个文件
方法:read()
示范代码如下:
通过运行代码,读取到的内容是:
需要特别注意的是:一旦打开文件就一定要关闭,调用close()函数。
2)读取包含中文内容的文本
中文文本如下所示:
方法:read() 函数,但是在打开文件的时候要指定编码为 utf - 8。
示范代码如下:
运行后的结果如下:
3)按行读取内容
方法:readlines()
示范代码如下:
运行结果是:
需要注意的是:readlines() 返回的结果是列表类型的,且换行符用 “\n”来代替了。
2、写入数据到文件中
前面我们已经了解了读取文件的方式,那么在日常的工作中,我们当然也会遇到要写入内容到文件中的情况,这时我们就要使用write()来进行写入,下面我们将介绍写入数据到文件中的方法。
首先,想要向文件中写入数据,必须用r+、w、w+、a、a+这五种模式来打开文件,稍后我们将为大家介绍这几种模式的区别。
1)简单的写入数据到文件中
方法:write()
我们仍然使用前面的“demo_1.txt”文件来进行举例和说明,已有的内容如下所示:
示范代码如下:
运行后我们打开demo_1.txt 检查我们写入的结果,截图如下:
通过截图我们发现,通过 w、w+ 模式打开一个文件进行写入时,都会清空文件,并写入新的内容。如果我们使用w、w+ 模式打开一个不存在的文件进行写入时,则会新建一个文件,然后写入内容。使用a、a+模式写入文件在这里我们不再赘述,需要提醒大家的是,a模式是追加模式,所以它是在文件的末尾追加内容,大家可以自行尝试。
2)写入多行数据到文件中
方法:writelines()
writelines()可以写入多行数据,也可以写入列表类型的数据,但是需要注意的是,它本身是不支持换行的,我们需要在指定的需要换行的内容中加入换行符。
示范代码如下:
运行代码后,打开文件,结果如下:
3、with...open...as...上下文管理器
我们在进行文件操作的时候,一直强调,资源打开了就一定要记得关闭,否则会占用资源,现在我们学习一个上下文管理器,来帮助我们更好的管理资源。
我们打开一个文件进行读取操作的时候,使用上下文管理器来完成这个请求示范代码如下:
我们发现文件已经关闭,不需要我们再去调用close()函数,这个方法在编写单元测试执行用例生成测试报告的时候,用的特别多,后面将为大家详细介绍。