持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情
1.文件打开
无论是读文件,还是写文件,都需要先将文件打开,通过Python内置的open方式打开,语法如下:
变量=open(文件路径,文件打开模式)
文件打开模式有以下几种。
-
r以只读的方式打开。
-
r+以读写的方式打开。
-
w以写入的方式打开,会覆盖原有文件的所有内容,如果不存在,则新建文件。
-
w+以读写的方式打开,会覆盖原有文件的所有内容,如果不存在,则新建文件。
-
a以写入的方式打开,不会覆盖原有文件的内容,追加写入到文件的最后,如果不存在, 则新建文件。
-
a+以读写的方式打开,不会覆盖原有文件的内容,追加写入到文件的最后,如果不存在, 则新建文件。
-
b以二进制的方式打开,可以结合r、w、a使用。
-
·U支持所有的换行符号。
可以根据实际情况选择对应的模式或者组合模式,先新建一个txt文件, 随便输入一些内容,然后在读写文件的实例代码中介绍如何使用。新建文件中的内容如图所示。
2.文件读取
文件读取是Python内置的函数,不需要导入模块就可以直接调用了。这个功能对于自动化测试来说其意义在于测试用例的数据读取,读取文件有3种方法。
-
readO 读取文件的所有内容。
-
readline()读取文件的第一行内容。
-
readlines()读取文件的每一行内容。
通过实例来看一下这3种的差异,read()方法
实例代码:
1 file = open("G:\\python\\shuju.txt","r")
2 result=file.read()
3 print(result)
4 file.close()
代码说明:
1 选择txt文件对应的路径,以只读方式打开,并实例化赋值给变量file。
2 通过file对象的readO方法把文件结果读出,并赋值给变量result。
4 关闭文件释放资源。
再来看readline()方法的实例代码:
1 file = open("G:\\python\\shuju.txt","r")
2 result=file.readline()
3 print (result)
4 file.close()
运行结果如图所示。
最后来看readlines()方法的实例代码。
1 file = open("G:\\python\\shuju.txt","r")
2 result = file.readlines()
3 print(result)
4 file.close()
运行结果如图所示。
通过运行结果,可以一目了然地看到3种方法的不同,也许有人对read()和readlines()的差异有所困惑,不都是读取文件的全部吗?这里有个关键的差异,这二者读取后的数据类型是不一样的,readO读取出来的数据类型是字符串,而readlines()读取出来的数据类型是列表,每一行作为 列表的一个元素,这就导致在不同情况下需要使用不同的方法读取文件数据。一般来说推荐使用 readlines()方法,尤其对于测试数据来说,一行作为一组数据等同于列表 的一个元素,这样在使用数据的时候可以通过循环的方法读取每一行数据,以达到一组数据作为 一个测试用例执行的目的。
实例代码:
1 file = open("G:\\python\\shuju.txt","r")
2 result=file.readlines()
3 for i in result:
4 print(i)
5 file.close()
代码说明:
3 通过for循环将列表result中的元素依次赋值给变量i。 运行结果如图所示。
通过结果看到,每一次循环打印一次列表中的元素,用这样的方式就可以输入不同的数据作为自动化测试的测试参数了,只需要在新建文件的时候按照一行一组数据的方式编写,
再通过循环依次赋值来执行测试。
知道了读取一组数据的方式,那如何才能把一组数据分离出来分别赋值给不同的参数呢?因 为输入的内容每一行都是一组字符串,所以需要通过 split0方法把字符串元素通过“,”分离成 列表,最后再通过列表的索引依次赋值。
实例代码:
代码说明:
4 把变量i用split(用逗号分隔成包含3个元素的列表,并赋值给变量x。
6~9分别把列表的三个元素赋值给变量a、b、c。
用上面的方法读取文件数据,就可以完成数据驱动的自动化测试了
3 文件写入
文件写入也是Python的内置函数,这个功能对于自动化测试来说意义在于测试报告的输出。
文件写入的方式有以下两种。
-
write()
将全部内容一起写入文件。 -
writelines()
把列表内容逐行写入文件。
一般情况下用writ()就可以了,除非写入内容是列表类型,对于测试来说用write()方式就足 够了,以追加写入为例。
实例代码:
1 file = open("G:\\python\\shuju.txt" ,a+")
2 file.write("xxx"+"\n")
还有一种是替换的方式写入,实例代码:
1 file = open("G:\\pytn\\shujun.txt,"w+")
2 file.write("yyy"+"\n")
3 file.write("zzz"+"\n")
打开txt文件查看写入结果如图所示。
通过运行结果可以看到2种写入方式的差异,对于测试报告的输出也需要根据实际需求来选择使用哪种方式。