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")

  

 

posted @ 2020-09-23 13:07  panda4671  阅读(275)  评论(0编辑  收藏  举报