python实现扫描日志关键字的示例


Posted in Python onApril 28, 2018

我们在压力测试过程会收集到很多log,怎样快速从中找到有用信息呢?让python脚本帮我们做这部分工作吧!

废话不说,上代码

环境:win10 + python2.7.14

#-*- encoding: utf-8 -*-
#author : beihuijie
#version 1.1
import re
import sys
import os
import countTime
def getParameters():
 '''
 get parameters from console command
 '''
 with open(sys.argv[1], "r") as fread:
 lines = fread.readlines()
 keywords=[]
 for line in lines:
  temp = line.split(', ')
  keywords.append(temp)
 for i in range(0, (len(keywords[0]) - 1)):
  print ' Keyword = %s' % keywords[0][i]
 return keywords[0]
def isFileExists(strfile):
 '''
 check the file whether exists
 '''
 return os.path.isfile(strfile)
def Search(keyword, filename):
 '''
 search the keyword in a assign file
 '''
 if(isFileExists(filename) == False):
 print 'Input filepath is wrong,please check again!'
 sys.exit()
 linenum = 1
 findtime = 0
 with open(filename, 'r') as fread:
 lines = fread.readlines()
 for line in lines:
  rs = re.findall(keyword, line, re.IGNORECASE)
  if rs:
  #output linenum of keyword place 
  sys.stdout.write('line:%d '%linenum)
  lsstr = line.split(keyword)
  strlength = len(lsstr)
  findtime = findtime + 1
  #print strlength
  for i in range(strlength):
   if(i < (strlength - 1)):
   sys.stdout.write(lsstr[i].strip())
   sys.stdout.write(keyword)
   else:
   sys.stdout.write(lsstr[i].strip() + '\n')
  linenum = linenum + 1
 print '+----------------------------------------------------------------------------+'
 print (' Search result: find keyword: %s %d times'%(keyword, findtime))
 print '+----------------------------------------------------------------------------+'
def executeSearch():
 '''
 this is a execute search method
 '''
 ls = getParameters()
 start = countTime.getTime()
 parameter_number = len(ls)
 print 'Filename = %s ' % ls[parameter_number - 1]
 print '--------------------start search-------------------------'
 if(parameter_number >= 2):
 for i in range(parameter_number - 1):
  Search(ls[i], ls[parameter_number - 1])
 else:
 print 'There is a parameter error occured in executeSearch()!'
 end = countTime.getTime()
 print '+----------------------------------------------------------------------------+'
 print ' Total cost time: %s'%countTime.formatTime(end - start)
 print '+============================================================================+'
 
if __name__=='__main__':
 executeSearch()

countTime.py

#-*- encoding: utf-8 -*-
#author : beihuijie
#version 1.1
import datetime
import time
def getTime():
 '''
 return time is format of time(unit is second)
 '''
 return time.time()
def getCPUClockTime():
 '''
 return time is CPU Clock time
 '''
 return time.clock()
def formatTime(timevalue):
 '''
 format the time numbers
 '''
 hour = 0
 minute = 0
 second = 0
 if timevalue > 0:
 #count hour
 hour = timevalue // 3600
 remain = timevalue % 3600
 #count minute
 minute = remain // 60
 remain = remain % 60
 #count second
 second = round(remain, 3)
 return '%.0fh:%.0fm:%.3fs'%(hour, minute, second)
 
if __name__=='__main__':
 value = 134.45632
 print value
 print formatTime(value)

关键字及被扫描的日志路径信息,记录到文件中,以逗号+空格隔开,如,“, ”日志路径信息放到最后。

格式如下:

anr, dalvikvm: Could not find class 'android.app.usage., panic, C:\Users\BHJ\logcat1.log

执行结果:

python实现扫描日志关键字的示例

以上这篇python实现扫描日志关键字的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python dict remove数组删除(del,pop)
Mar 24 Python
使用Python编写vim插件的简单示例
Apr 17 Python
为Python的web框架编写MVC配置来使其运行的教程
Apr 30 Python
python中MethodType方法介绍与使用示例
Aug 03 Python
python微信公众号之关注公众号自动回复
Oct 25 Python
python实现QQ空间自动点赞功能
Apr 09 Python
使用python将mysql数据库的数据转换为json数据的方法
Jul 01 Python
基于Python2、Python3中reload()的不同用法介绍
Aug 12 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
Oct 11 Python
flask框架自定义url转换器操作详解
Jan 25 Python
python中子类与父类的关系基础知识点
Feb 02 Python
浅谈Python响应式类库RxPy
Jun 14 Python
python socket网络编程之粘包问题详解
Apr 28 #Python
在Windows中设置Python环境变量的实例讲解
Apr 28 #Python
PyTorch快速搭建神经网络及其保存提取方法详解
Apr 28 #Python
对Python中type打开文件的方式介绍
Apr 28 #Python
PyTorch上搭建简单神经网络实现回归和分类的示例
Apr 28 #Python
TensorFlow实现非线性支持向量机的实现方法
Apr 28 #Python
python 通过logging写入日志到文件和控制台的实例
Apr 28 #Python
You might like
php 动态执行带有参数的类方法
2009/04/10 PHP
通过javascript设置css属性的代码
2009/12/28 Javascript
JS代码放在head和body中的区别分析
2011/12/01 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
2013/08/02 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
JavaScript forEach中return失效问题解决方案
2020/06/01 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
python opencv 直方图反向投影的方法
2018/02/24 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
2018/04/02 Python
Python使用re模块实现信息筛选的方法
2018/04/29 Python
Python socket模块方法实现详解
2019/11/05 Python
django框架forms组件用法实例详解
2019/12/10 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
Python通过kerberos安全认证操作kafka方式
2020/06/06 Python
html5+css3之动画在webapp中的应用
2014/11/21 HTML / CSS
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
canvas简易绘图的实现(海绵宝宝篇)
2018/07/04 HTML / CSS
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
介绍Java的内部类
2012/10/27 面试题
数控技术与应用毕业生自荐信
2013/09/24 职场文书
外贸业务员岗位职责
2013/11/24 职场文书
拓展培训心得体会
2014/01/04 职场文书
生物学学生自我评价
2014/01/17 职场文书
作弊检讨书1000字
2014/02/01 职场文书
新教师岗前培训方案
2014/06/05 职场文书
优秀团员事迹材料1000字
2014/08/20 职场文书
个人授权委托书样本
2014/09/13 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
导游经典开场白——导游词
2019/04/17 职场文书
Java基于字符界面的简易收银台
2021/06/26 Java/Android
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android
使用CSS定位HTML元素的实现方法
2022/07/07 HTML / CSS