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写的Tkinter程序屏幕居中方法
Mar 10 Python
Python使用redis pool的一种单例实现方式
Apr 16 Python
python扫描proxy并获取可用代理ip的实例
Aug 07 Python
Python3 伪装浏览器的方法示例
Nov 23 Python
Python 16进制与中文相互转换的实现方法
Jul 09 Python
Python requests库用法实例详解
Aug 14 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
python TK库简单应用(实时显示子进程输出)
Oct 29 Python
python 实现矩阵填充0的例子
Nov 29 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
May 25 Python
python操作微信自动发消息的实现(微信聊天机器人)
Jul 14 Python
pytorch 中autograd.grad()函数的用法说明
May 12 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分页显示制作详细讲解
2006/10/09 PHP
php正则校验用户名介绍
2008/07/19 PHP
destoon公司主页模板风格的添加方法
2014/06/20 PHP
ThinkPHP添加更新标签的方法
2014/12/05 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
php中上传文件的的解决方案
2018/09/25 PHP
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
JavaScript转换与解析JSON方法实例详解
2015/11/24 Javascript
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
简单实现js轮播图效果
2017/07/14 Javascript
浅谈node的事件机制
2017/10/09 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
详解Vue源码学习之双向绑定
2019/04/10 Javascript
解决Nuxt使用axios跨域问题
2020/07/06 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
[07:54]DOTA2 MV《我的动力鞋》 ImbaTV 出品
2014/11/21 DOTA
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
python模块之StringIO使用示例
2015/04/08 Python
Python设计模式之中介模式简单示例
2018/01/09 Python
windows下python安装小白入门教程
2018/09/18 Python
selenium 安装与chromedriver安装的方法步骤
2019/06/12 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
pandas分批读取大数据集教程
2020/06/06 Python
html5需遵循的6个设计原则
2016/04/27 HTML / CSS
学生打架检讨书
2014/02/14 职场文书
消防安全员岗位职责
2014/03/10 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
岗位职责说明书模板
2014/07/30 职场文书
公安机关纪律作风整顿个人剖析材料材料
2014/10/10 职场文书
会计专业自荐信范文
2019/05/22 职场文书
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python
Html5同时支持多端sdk的小技巧
2021/11/17 HTML / CSS