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()函数,这个方法在编写单元测试执行用例生成测试报告的时候,用的特别多,后面将为大家详细介绍。

 

posted @ 2020-05-13 21:23  笔筒里的猫  阅读(172)  评论(0编辑  收藏  举报