python 实现提取log文件中的关键句子,并进行统计分析

 更新时间:2019年12月24日 10:12:12   作者:Allen_Zhong  
今天小编就为大家分享一篇python 实现提取log文件中的关键句子,并进行统计分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

利用python开发了一个提取sim.log 中的各个关键步骤中的时间并进行统计的程序:

#!/usr/bin/python2.6
import re,datetime
file_name='/home/alzhong/logs/qtat1/R2860.01.13/sim-applycommitrollback-bld1.log'
file=open(file_name,'r')
acnum=[];time_res=[];lnum=0
def trans_time(time):
  t1=datetime.datetime.strptime(time,'%y/%m/%d %H:%M:%S')
  return t1
for (num,line) in enumerate(file):

  if(re.search(r'^(.*)BEGINNING SIM PROCEDURE(.*)$',line)):
    m=re.search(r'^(.*)BEGINNING SIM PROCEDURE(.*)$',line)
    print 'Step %d:'%(lnum), m.group(0);lnum+=1
    acnum.append(trans_time(line[0:17]))
  elif(re.search(r'^(.*)CP_W(.*)$', line)):
    m=re.search(r'^(.*)CP_W(.*)$', line)
    print 'Step %d:'%(lnum), m.group(0);lnum+=1
    acnum.append(trans_time(line[0:17]))
  elif(re.search(r"^(.*)VERIFY_S(.*)$", line)):
    m=re.search(r"^(.*)VERIFY_S(.*)$", line)
    print 'Step %d:'%(lnum), m.group(0);lnum+=1
    acnum.append(trans_time(line[0:17]))
  elif(re.search(r"^(.*)--action commit(.*)$",line)):
    m=re.search(r"^(.*)--action commit(.*)$",line)
    print 'Step %d:'%(lnum), m.group(0);lnum+=1
    acnum.append(trans_time(line[0:17]))
  elif(re.search(r"^(.*)COMPLETED SIM PROCEDURE(.*)$",line)):
    m=re.search(r"^(.*)COMPLETED SIM PROCEDURE(.*)$",line)
    print 'Step %d:'%(lnum), m.group(0);lnum+=1
    acnum.append(trans_time(line[0:17]))
  elif(re.search(r"^(.*)RESUMING SIM PROCEDURE(.*)$",line)):
    m=re.search(r"^(.*)RESUMING SIM PROCEDURE(.*)$",line)
    print 'Step %d:'%(lnum), m.group(0);lnum+=1
    acnum.append(trans_time(line[0:17]))

file.close()
if(re.search(r"^(.*)backout(.*)$",file_name)):
  time_res.append((acnum[2]-acnum[0]).seconds/60)
  time_res.append((acnum[4]-acnum[3]).seconds/60)
  time_res.append((acnum[6]-acnum[5]).seconds/60)
  time_res.append(((acnum[8]-acnum[7])+(acnum[10]-acnum[9])+(acnum[13]-acnum[11])).seconds/60)
  print "\n3). sim --proc update --action apply to \"CP_WARNING\" %s mins" %(time_res[0])
  print "4). sim --proc update --action resume to \"VERIFY_SOFTWARE\" %s mins"%(time_res[1])
  print "5). sim --proc update --action resume to \"COMMIT\" %s mins"%(time_res[2])
  print "8). Backout from RXX to RXX %s mins"%(time_res[3])
elif(re.search(r"^(.*)rollback(.*)$",file_name)):
  time_res.append((acnum[2]-acnum[0]).seconds/60)
  time_res.append((acnum[4]-acnum[3]).seconds/60)
  time_res.append((acnum[6]-acnum[5]).seconds/60)
  time_res.append((acnum[8]-acnum[7]).seconds/60)
  time_res.append(((acnum[10]-acnum[9])+(acnum[12]-acnum[11])+(acnum[15]-acnum[13])).seconds/60)
  print "\n3). sim --proc update --action apply to \"CP_WARNING\" %s mins" %(time_res[0])
  print "4). sim --proc update --action resume to \"VERIFY_SOFTWARE\" %s mins"%(time_res[1])
  print "5). sim --proc update --action resume to \"COMMIT\" %s mins"%(time_res[2])
  print "6). sim --proc update --action commit to end of Patch %s mins"%(time_res[3])
  print "8). Rollback from RXX to RXX %s mins" %(time_res[4])
if __name__ == '__main__':
  pass
:q!
<lsslogin1-alzhong>/home/alzhong/tools: ls
simt
<lsslogin1-alzhong>/home/alzhong/tools: ./simt
Step 0: 14/06/16 12:31:32 BEGINNING SIM PROCEDURE 'update apply' type=hot ...
Step 1: 14/06/16 13:18:42 RESUMING SIM PROCEDURE 'update apply' type=hot ...
Step 2: 14/06/16 13:30:43 SIM0317 PAUSE_REQUEST: (PROCEDURE) [PAUSE(CP_WARNING): Use 'sim --proc update --action resume' to continue...] (update:1435)
Step 3: 14/06/16 13:43:40 RESUMING SIM PROCEDURE 'update apply' type=hot ...
Step 4: 14/06/16 13:47:49 SIM0343 PAUSE_REQUEST: (PROCEDURE) [PAUSE(VERIFY_SOFTWARE): Use 'sim --proc update --action resume' to continue...] (update:1634)
Step 5: 14/06/16 13:54:26 RESUMING SIM PROCEDURE 'update apply' type=hot ...
Step 6: 14/06/16 14:25:41 SIM0496 PAUSE_REQUEST: (COMMIT) [PAUSE(COMMIT): Use 'sim --proc update --action commit' to continue...] (update:2579)
Step 7: 14/06/16 14:41:51 RESUMING SIM PROCEDURE 'update commit' type=hot ...
Step 8: 14/06/16 15:18:34 COMPLETED SIM PROCEDURE 'update commit' type=hot
Step 9: 14/06/16 15:31:35 BEGINNING SIM PROCEDURE 'update rollback' type=hot level=9999 ...
Step 10: 14/06/16 15:47:34 SIM0091 PAUSE_REQUEST: (PROCEDURE) [PAUSE(CP_WARNING): Use 'sim --proc update --action resume' to continue...] (update_rlbk:421)
Step 11: 14/06/16 15:53:30 RESUMING SIM PROCEDURE 'update rollback' type=hot level=9999 ...
Step 12: 14/06/16 16:02:03 SIM0135 PAUSE_REQUEST: (PROCEDURE) [PAUSE(VERIFY_SOFTWARE): Use 'sim --proc update --action resume' to continue...] (update_rlbk:564)
Step 13: 14/06/16 16:04:22 RESUMING SIM PROCEDURE 'update rollback' type=hot level=9999 ...
Step 14: 14/06/16 16:09:42 RESUMING SIM PROCEDURE 'update rollback' type=hot level=9999 ...
Step 15: 14/06/16 16:26:56 COMPLETED SIM PROCEDURE 'update rollback' type=hot level=9999

3). sim --proc update --action apply to "CP_WARNING" 59 mins
4). sim --proc update --action resume to "VERIFY_SOFTWARE" 4 mins
5). sim --proc update --action resume to "COMMIT" 31 mins
6). sim --proc update --action commit to end of Patch 36 mins
8). Rollback from RXX to RXX 47 mins

以上这篇python 实现提取log文件中的关键句子,并进行统计分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例

    Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例

    这篇文章主要介绍了Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02
  • python selenium 无界面浏览器的实现

    python selenium 无界面浏览器的实现

    有时我们不想让浏览器窗口跳出来,而是想在后台进行操作,这就需要用到无界面浏览器,本文主要介绍了python selenium 无界面浏览器的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • python的pip有什么用

    python的pip有什么用

    在本篇文章里小编给大家整理的是关于python的pip作用等相关内容,有需要的朋友们可以学习下。
    2020-06-06
  • Python subprocess模块详细解读

    Python subprocess模块详细解读

    这篇文章主要介绍了Python subprocess模块详细解读,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • python b站视频下载的五种版本

    python b站视频下载的五种版本

    该项目用于Bilibili(b站)视频下载(支持分P多段视频的下载),基于python开发,有此需求的朋友可以参考下
    2021-05-05
  • python程序运行进程、使用时间、剩余时间显示功能的实现代码

    python程序运行进程、使用时间、剩余时间显示功能的实现代码

    这篇文章主要介绍了python程序运行进程、使用时间、剩余时间显示功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2019-07-07
  • Python中交换两个元素的实现方法

    Python中交换两个元素的实现方法

    今天小编就为大家分享一篇Python中交换两个元素的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python光学仿真学习处理高斯光束分布图像

    Python光学仿真学习处理高斯光束分布图像

    这篇文章主要为大家介绍了Python光学仿真学习之如何处理高斯光束的分布图像,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • 解决python3中os.popen()出错的问题

    解决python3中os.popen()出错的问题

    在本篇文章里小编给大家整理的是一篇关于解决python3中os.popen()出错的问题的相关内容,有兴趣的朋友们可以参考下。
    2020-11-11
  • pandas中Series和DataFrame的rank方法解析

    pandas中Series和DataFrame的rank方法解析

    pandas中的rank方法是用于数据排名的重要工具,它不返回排序后的数据,而是数据的排名。rank方法可以处理相同数据的排名,通过平均排名方式解决排名冲突,并支持自定义排序规则及逆序排名。此外,DataFrame的rank方法允许在行或列上计算排名
    2024-09-09

最新评论