在測試任務過程中都或多或少遇到自己處理文本文件的情況。
舉個栗子:
-
客戶端測試從異常日志中收集有用信息。
-
后端測試需要創建各種規則的壓力的詞表。
-
...
這里給大家分享一個使用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