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

  • 相关阅读:
    redis使用lua脚本遇到的问题
    redis使用scan count 返回数量不准确
    window系统下搭建本地的NuGet Server
    windows10使用docker发布.netcore程序
    windows10使用docker安装mysql
    windows10搭建redis4.0集群
    windows10配置redis主从复制
    windows10安装redis4.0
    mysql 共享排他锁
    mysql drop表以后恢复数据
  • 原文地址:https://www.cnblogs.com/sea-stream/p/11273039.html
Copyright © 2011-2022 走看看