Extract the contents of the specified log file

 

Following log, extracted Notice: lines beginning ctime values ​​and then averaging

a.log log file

Notice: hjhj hjj hj hj jhj hh ctime: 35s fr f rf r fr 
Notice: hjhj hjj hj hj jhj hh ctime: 35s fr f rf r fr 
112222221111111122233331111111111111 
Notice: hjhj hjj hj hj jhj hh ctime: 35s fr f rf r fr 
hhhhhhhhhhhhhhhhhhhhhhhhh 
Notice: hjhj hjj hj hj jhj hh ctime: 35s fr f rf r fr 


Notice: hjhj hjj hj hj jhj hh ctime: 35s fr f rf r fr 


Notice: hjhj hjj hj hj jhj hh ctime: 35s fr f rf r fr 

Notice: hjhj hjj hj hj jhj hh ctime: 35s fr f rf r fr 

Notice: hjhj hjj hj hj jhj hh ctime: 35s fr f rf r fr 
Notice: hjhj hjj hj hj hh jhj ctime: 35s fr rf f r fr 
Notice: hjhj hjj hj hj hh jhj ctime: 35s fr rf f r fr

Notice: hjhj hjj hj hj jhj hh ctime: 35s fr f rf r fr 
Notice: hjhj hjj hj hj jhj hh ctime: 35s fr f rf r fr 
Notice: hjhj hjj hj hj jhj hh ctime: 35s fr f rf r fr

 

Solution

#coding=utf-8
import re

def gettime(l):
    num=""
    index=int(l.find("ctime"))+6
    while(True):
        if(l[index]=="s"):
            break
        else:
            num+=l[index]
        index+=1
    return int(num)

t=0
count=0
with open("a.log","r") as f:
    while(True):
        l=f.readline()
        if(not l):
            break
        if(re.match("Notice:",l)):
            t+=gettime(l)
            count+=1
    average=t/count
    print(average)

Export

35.0

 

 

 

 

Guess you like

Origin www.cnblogs.com/sea-stream/p/11273039.html