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

  • 相关阅读:
    Nginx教程(三) Nginx日志管理
    Nginx教程(二) Nginx虚拟主机配置
    官方解析Cookies和Session的区别
    J2EE十三个技术规范
    J2EE十三个规范小结
    tomcat -web.xml里的内容
    tcp协议和udp协议的使用场景
    IntelliJ IDEA创建maven web项目(IDEA新手适用)
    Maven安装与配置
    X86、X64和X86_64区别
  • 原文地址:https://www.cnblogs.com/sea-stream/p/11273039.html
Copyright © 2011-2022 走看看