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