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 相关文章推荐
pygame 精灵的行走及二段跳的实现方法(必看篇)
Jul 10 Python
Python如何快速上手? 快速掌握一门新语言的方法
Nov 14 Python
利用Python读取txt文档的方法讲解
Jun 23 Python
Python中new方法的详解
Jan 15 Python
Python3列表内置方法大全及示例代码小结
May 10 Python
Python实现FTP文件传输的实例
Jul 07 Python
利用Python进行图像的加法,图像混合(附代码)
Jul 14 Python
wxpython实现按钮切换界面的方法
Nov 19 Python
使用Python串口实时显示数据并绘图的例子
Dec 26 Python
Django 用户认证Auth组件的使用
Nov 30 Python
python微信智能AI机器人实现多种支付方式
Apr 12 Python
python 单机五子棋对战游戏
Apr 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 高手之路(一)
2006/10/09 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
destoon整合UCenter图文教程
2014/06/21 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
如何实现修改密码时密码框显示保存到cookie的密码
2013/12/10 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
简单实现JS对dom操作封装
2015/12/02 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
2016/09/21 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
React中上传图片到七牛的示例代码
2017/10/10 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
详解vue项目打包步骤
2019/03/29 Javascript
解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题
2019/11/14 Javascript
[14:00]DOTA2国际邀请赛史上最长大战 赛后专访B神
2013/08/10 DOTA
python中lambda()的用法
2017/11/16 Python
django中的图片验证码功能
2019/09/18 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
2019/11/27 Python
python多进程并发demo实例解析
2019/12/13 Python
使用pth文件添加Python环境变量方式
2020/05/26 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
仓管员岗位职责范本
2015/04/01 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
2015年度考核个人工作总结
2015/10/24 职场文书
2016优秀教师先进个人事迹材料
2016/02/25 职场文书
golang 实现对Map进行键值自定义排序
2021/04/28 Golang
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python
MySQL分区表管理命令汇总
2022/03/21 MySQL
Golang并发工具Singleflight
2022/05/06 Golang
基于Python实现西西成语接龙小助手
2022/08/05 Golang