python-處理日誌檔案,找出各個介面狀態碼為 200時的平均響應時間
阿新 • • 發佈:2020-09-23
今天又一面試題目,可惜我依舊新手,不熟練,速度太慢
背景:需要寫一個方法,處理一個程式的日誌檔案。
引數 檔名稱
日誌檔案的特點是:
每一行都是收到的程式請求的記錄
每一行的格式是:時間 日誌級別 介面名稱 介面處理時間 返回狀態碼,中間用空格分隔
找出各個介面狀態碼為 200時的平均響應時間
直接上pytho程式碼實現,新手考慮不全面,敬請諒解
import os from collections import defaultdict def getAverageTime(filename): inter_names=defaultdict(list) with open(filename, "r") as fp: for line in fp.readlines(): if len(line.split())<5: continue if line.split()[4]=="200": inter_names[line.split()[2]].append(float(line.split()[3])) item_times=defaultdict(float) for item in inter_names: count=len(inter_names[item]) total_time=sum(inter_names[item]) avg_time=total_time/count item_times[item]=avg_time print(item_times) if __name__=="__main__": getAverageTime("data.log")