在测试任务过程中都或多或少遇到自己处理文本文件的情况。
举个栗子:
-
客户端测试从异常日志中收集有用信息。
-
后端测试需要创建各种规则的压力的词表。
-
...
这里给大家分享一个使用python脚本处理文本的一些小技巧,分三步
-
学会创建文本文件。
-
学会读取已有的文本文件。
-
学会处理读取文件后的内容
创建文本文件
脚本创建文件和人工创建步骤一样,打开新文件,写入内容,保存并关闭文件
Case1:创建一个文件名为num.txt,内容是1~100数字分别每行一个
Code1:
#coding:utf-8
知识要点:
1.首行coding声明字符编码
根据涉及到的字符可以是gbk、utf8、cp936等等
2.open函数
包含两个参数,第一个参数为文件名。
第二个参数为模式,模式中常用的有只读“r”、写“w”、追加“a”。
r:只读模式常用于使用文本中内容,但不需要编辑内容时使用。
w:写模式常用于新增或编辑内容时使用。
a:追加模式跟写模式类似,不同点在于对同一文件追加模式会在文件内容尾部,续写,而写模式会清空内容重新写。
3.write和close函数
write传入的字符串内容即可。
close打开文件后一定要记得关闭保存。
读取已有的文本文件
Case2:读取文件(如图)内容,并打印。
Code2:
输出:
1.readline函数
每次读取一行,返回字符串。
2.read函数
读取整个文件,返回字符串。
3.readlines函数
读取整个文件,返回数组(数组的每个元素为每一行内容)。
处理读取文件后的内容
Case3:读取文件(如图)中内容cost的值。
Code3:
输出:
知识要点:
Split()函数
Step1:用字符串“cost=”切片原内容后的数组。
['[Sogou-Observer,', '29,ret=1,reqtype=dzz_activityperson,LocalQuery=0,PipeLine_Enter_LocalQueryTaskDZZ=1,Cost_Local=8,Reply=22,PipeLine_Enter_ReplyTask=29,parity=dzz_activityperson0000013CD91D0B011830401141DB4,id=web,Owner=OP]\n']
Step2:用step1第二个元素(cost=之后的内容),使用“,”切片获取数组
['29', 'ret=1','reqtype=dzz_activityperson', 'LocalQuery=0','PipeLine_Enter_LocalQueryTaskDZZ=1', 'Cost_Local=8', 'Reply=22','PipeLine_Enter_ReplyTask=29', 'parity=dzz_activityperson0000013CD91D0B011830401141DB4', 'id=web', 'Owner=OP]\n']
Step3:用step2第一个元素,即cost值作为结果。
29