zoukankan      html  css  js  c++  java
  • 提取日志文件的指定内容

    如下日志,提取出Notice:开头的行中的ctime的值,然后求平均数

    a.log日志文件

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

    解决方法

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

    输出

    35.0

  • 相关阅读:
    留言板
    移动端开发
    css3的伪类
    JQuery移除事件
    关于offset,你知道多少?
    关于section-scroll插件:
    jQuery响应式弹出层和对话框插插件magnific-popup.css
    col-lg-8 col-lg-offset-2
    关于渐变属 gradient:
    关于 window.onresize
  • 原文地址:https://www.cnblogs.com/sea-stream/p/11273039.html
Copyright © 2011-2022 走看看