1. 程式人生 > 實用技巧 >python-處理日誌檔案,找出各個介面狀態碼為 200時的平均響應時間

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