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+opencv实现动态物体识别
Jan 09 Python
python xlsxwriter创建excel图表的方法
Jun 11 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
Nov 18 Python
django-rest-swagger的优化使用方法
Aug 29 Python
Python中生成一个指定长度的随机字符串实现示例
Nov 06 Python
Python3并发写文件与Python对比
Nov 20 Python
在Tensorflow中查看权重的实现
Jan 24 Python
Python流程控制常用工具详解
Feb 24 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
Jun 09 Python
Python字符串及文本模式方法详解
Sep 10 Python
Python Selenium异常处理的实例分析
Feb 28 Python
Python pyecharts案例超市4年数据可视化分析
Aug 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/12/03 PHP
PHP图片裁剪函数(保持图像不变形)
2014/05/04 PHP
thinkphp模板继承实例简述
2014/11/26 PHP
你的编程语言可以这样做吗?
2006/09/07 Javascript
js常用函数 不错
2006/09/08 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
原生JavaScript实现连连看游戏(附源码)
2013/11/05 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
jQuery过滤选择器用法示例
2016/09/12 Javascript
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
2016/10/04 Javascript
js replace()去除代码中空格的实例
2017/02/14 Javascript
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
node和vue实现商城用户地址模块
2018/12/05 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
基于vue中的scoped坑点解说
2020/09/04 Javascript
Python修改列表值问题解决方案
2020/03/06 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
h5实现获取用户地理定位的实例代码
2017/07/17 HTML / CSS
全球领先的各类汽车配件零售商:Advance Auto Parts
2016/08/26 全球购物
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
台湾专柜女包:KINAZ
2019/12/26 全球购物
拉飞逸官网:Lafayette 148 New York
2020/07/15 全球购物
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
神路信息Java面试题目
2013/03/31 面试题
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
软件测试工程师面试问题精选
2016/10/28 面试题
思想政治教育专业个人求职信范文
2013/12/20 职场文书
党员个人公开承诺书
2014/08/29 职场文书
2014年医药代表工作总结
2014/11/22 职场文书
教师节感谢信
2015/01/22 职场文书
自我评价优缺点范文
2015/03/11 职场文书
女方离婚起诉书
2015/05/18 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书