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


Posted in Python onDecember 24, 2019

利用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文件中的关键句子,并进行统计分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的简单hangman游戏实例
Jun 28 Python
python中常用的九种预处理方法分享
Sep 11 Python
Django自定义分页与bootstrap分页结合
Feb 22 Python
matplotlib subplots 调整子图间矩的实例
May 25 Python
Python爬虫beautifulsoup4常用的解析方法总结
Feb 25 Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
Sep 29 Python
kafka监控获取指定topic的消息总量示例
Dec 23 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
Mar 19 Python
Python 解决空列表.append() 输出为None的问题
May 23 Python
Python实战之大鱼吃小鱼游戏的实现
Apr 01 Python
Python使用pyecharts控件绘制图表
Jun 05 Python
Python3.7+tkinter实现查询界面功能
Dec 24 #Python
python 读取更新中的log 或其它文本方式
Dec 24 #Python
如何基于python操作excel并获取内容
Dec 24 #Python
python实现tail实时查看服务器日志示例
Dec 24 #Python
Python 模拟动态产生字母验证码图片功能
Dec 24 #Python
python中return的返回和执行实例
Dec 24 #Python
Python文件操作函数用法实例详解
Dec 24 #Python
You might like
PHP中数组定义的几种方法
2013/09/01 PHP
php网站地图生成类示例
2014/01/13 PHP
php中get_defined_constants函数用法实例分析
2015/05/12 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
2016/03/10 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
基于datagrid框架的查询
2013/04/08 Javascript
jQuery学习之prop和attr的区别示例介绍
2013/11/15 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
JSON相关知识汇总
2015/07/03 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
JavaScript中获取纯正的undefined的方法
2016/03/06 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
JS中正则表达式全局匹配模式 /g用法详解
2017/04/01 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
深入了解JavaScript 防抖和节流
2019/09/12 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
video.js添加自定义组件的方法
2020/12/09 Javascript
让 python 命令行也可以自动补全
2014/11/30 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
python协程之动态添加任务的方法
2019/02/19 Python
python config文件的读写操作示例
2019/09/27 Python
python 利用Pyinstaller打包Web项目
2020/10/23 Python
德国婴儿推车和儿童安全座椅商店:BABYSHOP
2016/09/01 全球购物
单身联谊活动方案
2014/01/29 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
教师自查自纠材料
2014/10/14 职场文书
职场中的你,辞职信写对了吗?
2019/06/26 职场文书