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并发编程之多进程、多线程、异步和协程详解
Oct 28 Python
python 表达式和语句及for、while循环练习实例
Jul 07 Python
Python实现购物程序思路及代码
Jul 24 Python
python下载文件记录黑名单的实现代码
Oct 24 Python
Python数据结构与算法之列表(链表,linked list)简单实现
Oct 30 Python
python交互式图形编程实例(三)
Nov 17 Python
完美解决python中ndarray 默认用科学计数法显示的问题
Jul 14 Python
Python实现模拟浏览器请求及会话保持操作示例
Jul 30 Python
python爬取微信公众号文章的方法
Feb 26 Python
python常用库之NumPy和sklearn入门
Jul 11 Python
python return逻辑判断表达式实现解析
Dec 02 Python
解决python DataFrame 打印结果不换行问题
Apr 09 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+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
php读取3389的脚本
2014/05/06 PHP
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
javascript的事件描述
2006/09/08 Javascript
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
浅谈javascript对象模型和function对象
2014/12/26 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
jQuery插件HighCharts实现的2D堆条状图效果示例【附demo源码下载】
2017/03/14 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
老生常谈js中的MVC
2017/07/25 Javascript
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
2020/05/03 Javascript
简单的通用表达式求10乘阶示例
2014/03/03 Python
Python解析树及树的遍历
2016/02/03 Python
python和ruby,我选谁?
2017/09/13 Python
如何使用Cython对python代码进行加密
2020/07/08 Python
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
西班牙英格列斯百货法国官网:El Corte Inglés法国
2017/07/09 全球购物
加拿大拼图大师:Puzzle Master
2020/12/28 全球购物
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
平面设计岗位职责
2013/12/14 职场文书
初中生考试作弊检讨书
2014/12/14 职场文书
运动会闭幕式主持词
2015/07/01 职场文书
图书馆义工感想
2015/08/07 职场文书
乡镇团代会开幕词
2016/03/04 职场文书
实例讲解Python中sys.argv[]的用法
2021/06/03 Python
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript