python-处理日志文件,找出各个接口状态码为 200时的平均响应时间
今天又一面试题目,可惜我依旧新手,不熟练,速度太慢
背景:需要写一个方法,处理一个程序的日志文件。
参数 文件名称
日志文件的特点是:
每一行都是收到的程序请求的记录
每一行的格式是:时间 日志级别 接口名称 接口处理时间 返回状态码,中间用空格分隔
找出各个接口状态码为 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")