python实现按关键字筛选日志文件


Posted in Python onDecember 24, 2019

最近忙成了狗,五六个项目堆在一起,头疼的是测试还失惊无神的给我丢来一个几十甚至上百M的日志文件,动不动就几十上百万行,就算是搜索也看得头昏眼花的,因此自己花了点时间写了一段小脚本去过滤日志,当然这样的东西网上应该大把,但是还是想自己搞下,权当学习!

#!/usr/bin/python
# -*- encoding: utf-8 -*-
# version 1.0
import re
import time
 
'''
用于筛选日志文件,适用于python2.x版本
使用时将日志文件放于search.py工具同一目录
筛选完毕后会出现“旧文件名+当前时间”格式命名的新日志文件
'''
 
 
def getParameters():
  file_name = ""
  key_work = ""
  while (True):
    file_name = raw_input("请输入文件名:")
    key_work = raw_input("请输入过滤关键字:")
    if len(file_name) == 0 or len(key_work) == 0:
      flag = raw_input("您输入的文件名或关键子为空,输出c重试,q退出程序:")
      if flag == "q":
        return
      elif flag == "c":
        continue
    else:
      break
 
  new_file = file_name + "-" + formatTime(time.localtime())
  f = open("./" + file_name, "rb")
  lines = f.readlines()
 
  if len(lines) == 0:
    print("========日志文件为空========")
    f.close()
    return
 
  nf = open("./" + new_file, "wb");
  count = 0
  for line in lines:
    rs = re.search(key_work, line)
    if rs:
      print("[命中]--->%s" % line)
      nf.write(line)
      count = count + 1
 
  f.close()
  nf.close()
  print("共找到%d条信息" % count)
 
 
def formatTime(timevalue):
  '''
  format the time numbers
  '''
  return time.strftime("%Y%m%d%H%M%S", timevalue)
 
 
if __name__ == '__main__':
  getParameters()

说明:这段脚本我是直接在终端上./xxxx.py的方式运行的,我终端由于编译android源码需要装的是python2.7.6,在python3上运行估计会有问题。

好了,下面是我测试了下的赛选结果:

python实现按关键字筛选日志文件

当然,这只针对单个文件而已!

以上这篇python实现按关键字筛选日志文件就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python函数装饰器用法实例详解
Jun 04 Python
Windows上使用virtualenv搭建Python+Flask开发环境
Jun 07 Python
Python计算斗牛游戏概率算法实例分析
Sep 26 Python
Python随机生成均匀分布在单位圆内的点代码示例
Nov 13 Python
Python将DataFrame的某一列作为index的方法
Apr 08 Python
Python采集代理ip并判断是否可用和定时更新的方法
May 07 Python
Python学习笔记之Zip和Enumerate用法实例分析
Aug 14 Python
关于Python中定制类的比较运算实例
Dec 19 Python
Python ini文件常用操作方法解析
Apr 26 Python
Python自动登录QQ的实现示例
Aug 28 Python
python 通过使用Yolact训练数据集
Apr 06 Python
python中requests库+xpath+lxml简单使用
Apr 29 Python
python 实现提取log文件中的关键句子,并进行统计分析
Dec 24 #Python
Python3.7+tkinter实现查询界面功能
Dec 24 #Python
python 读取更新中的log 或其它文本方式
Dec 24 #Python
如何基于python操作excel并获取内容
Dec 24 #Python
python实现tail实时查看服务器日志示例
Dec 24 #Python
Python 模拟动态产生字母验证码图片功能
Dec 24 #Python
python中return的返回和执行实例
Dec 24 #Python
You might like
使用php判断网页是否gzip压缩
2013/06/25 PHP
PHP中nowdoc和heredoc使用需要注意的一点
2014/03/21 PHP
使用php批量删除数据库下所有前缀为prefix_的表
2014/06/09 PHP
php定义一个参数带有默认值的函数实例分析
2015/03/16 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
wampserver改变默认网站目录的办法
2015/08/05 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
php判断是否为ajax请求的方法
2016/11/29 PHP
cakephp常见知识点汇总
2017/02/24 PHP
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
AngularJS内置指令
2015/02/04 Javascript
纯JS实现可拖拽表单的简单实例
2016/09/02 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
2017/03/17 Javascript
微信小程序 检查接口状态实例详解
2017/06/23 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
vue-cli3.0使用及部分配置详解
2018/08/29 Javascript
js实现图片无缝循环轮播
2019/10/28 Javascript
python常见数制转换实例分析
2015/05/09 Python
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
python验证码识别的实例详解
2016/09/09 Python
python matplotlib中文显示参数设置解析
2017/12/15 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
python 实现批量替换文本中的某部分内容
2019/12/13 Python
Python hashlib模块实例使用详解
2019/12/24 Python
在keras中实现查看其训练loss值
2020/06/16 Python
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
数控专业大学生的自我鉴定
2013/11/13 职场文书
团员个人的自我评价
2013/12/02 职场文书
学生手册评语
2014/05/05 职场文书
房产转让协议书(2014版)
2014/09/30 职场文书
vue3中provide && inject的使用
2021/07/01 Vue.js
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python
MySQL学习之基础操作总结
2022/03/19 MySQL