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计算一个文件里字数的方法
Jun 15 Python
详解Python3.6的py文件打包生成exe
Jul 13 Python
解决Django一个表单对应多个按钮的问题
Jul 18 Python
python实现翻转棋游戏(othello)
Jul 29 Python
Python搭建代理IP池实现接口设置与整体调度
Oct 27 Python
利用Python的sympy包求解一元三次方程示例
Nov 22 Python
浅析Python3 pip换源问题
Jan 06 Python
Python loguru日志库之高效输出控制台日志和日志记录
Mar 07 Python
python 轮询执行某函数的2种方式
May 03 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
May 22 Python
浅析关于Keras的安装(pycharm)和初步理解
Oct 23 Python
Python创建简单的神经网络实例讲解
Jan 04 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
smtp邮件发送一例
2006/10/09 PHP
可定制的PHP缩略图生成程式(需要GD库支持)
2007/03/06 PHP
PHP高级OOP技术演示
2009/08/27 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
2014/06/12 PHP
8个PHP数组面试题
2015/06/23 PHP
smarty自定义函数用法示例
2016/05/20 PHP
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
koa-router源码学习小结
2018/09/07 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
vue-cli3跨域配置的简单方法
2019/09/06 Javascript
Layui实现主窗口和Iframe层参数传递
2019/11/14 Javascript
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
phpsir 开发 一个检测百度关键字网站排名的python 程序
2009/09/17 Python
python发送邮件示例(支持中文邮件标题)
2014/02/16 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
python中的反斜杠问题深入讲解
2019/08/12 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
Python实现Word表格转成Excel表格的示例代码
2020/04/16 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
Python使用tkinter实现小时钟效果
2021/02/22 Python
利用CSS3伪元素实现逐渐发光的方格边框
2017/05/07 HTML / CSS
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
DNA基因检测和分析:23andMe
2019/05/01 全球购物
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
数控加工专业毕业生自荐信
2013/09/27 职场文书
党员转正党支部意见
2015/06/02 职场文书
走进毛泽东观后感
2015/06/04 职场文书
工作会议简报
2015/07/20 职场文书
党风廉洁教育心得体会
2016/01/20 职场文书
党员学习型组织心得体会
2019/06/21 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书