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 random模块(获取随机数)常用方法和使用例子
May 13 Python
Python中使用语句导入模块或包的机制研究
Mar 30 Python
python Pandas 读取txt表格的实例
Apr 29 Python
Python实现快速傅里叶变换的方法(FFT)
Jul 21 Python
Python编程在flask中模拟进行Restful的CRUD操作
Dec 28 Python
Django项目创建到启动详解(最全最详细)
Sep 07 Python
详解django使用include无法跳转的解决方法
Mar 19 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
Jul 09 Python
Python内存泄漏和内存溢出的解决方案
Sep 26 Python
Python监听剪切板实现方法代码实例
Nov 11 Python
Pandas中两个dataframe的交集和差集的示例代码
Dec 13 Python
如何用tempfile库创建python进程中的临时文件
Jan 28 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强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
2014/11/19 PHP
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
laravel清除视图缓存的代码
2019/10/23 PHP
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
Nodejs高扩展性的模板引擎 functmpl简介
2017/02/13 NodeJs
Bootstrap3多级下拉菜单
2017/02/24 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
浅析Vue项目中使用keep-Alive步骤
2018/07/27 Javascript
小程序实现多选框功能
2018/10/30 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
2019/09/03 jQuery
React+Redux实现简单的待办事项列表ToDoList
2019/09/29 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
python通过字典dict判断指定键值是否存在的方法
2015/03/21 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
python实现处理mysql结果输出方式
2020/04/09 Python
英国和爱尔兰的自炊式豪华度假小屋:Rural Retreats
2018/06/08 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
个人求职信范例
2014/01/29 职场文书
暑期社会实践感言
2014/02/25 职场文书
教学改革实施方案
2014/03/31 职场文书
仓库规划计划书
2014/04/28 职场文书
毕业大学生自荐信
2014/06/17 职场文书
无房证明样本
2015/06/17 职场文书
水浒传读书笔记
2015/06/25 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers