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

  • 相关阅读:
    崔工读过的技术书籍,持续更新中!
    Python-S9——Day110-Git继续
    Python-S9——Day115-Flask Web框架
    树形dp 之 小胖守皇宫
    线性dp 之 奶牛渡河
    网课神器之obs-studio的安装使用
    Convert to Ones
    UVA 10653.Prince and Princess
    HDOJ 1051. Wooden Sticks
    洛谷P1063.能量项链
  • 原文地址:https://www.cnblogs.com/sea-stream/p/11273039.html
Copyright © 2011-2022 走看看