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堆排序原理与实现方法详解
May 11 Python
Python中使用Counter进行字典创建以及key数量统计的方法
Jul 06 Python
PyQt打开保存对话框的方法和使用详解
Feb 27 Python
将pip源更换到国内镜像的详细步骤
Apr 07 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
Jul 19 Python
WxPython实现无边框界面
Nov 18 Python
如何基于Python获取图片的物理尺寸
Nov 25 Python
python dataframe NaN处理方式
Dec 26 Python
Python包,__init__.py功能与用法分析
Jan 07 Python
使用python turtle画高达
Jan 19 Python
如何基于Python实现word文档重新排版
Sep 29 Python
Python根据字典的值查询出对应的键的方法
Sep 30 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+AJAX实现无刷新注册(带用户名实时检测)
2006/12/02 PHP
php 读取文件乱码问题
2010/02/20 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
Laravel重定向,a链接跳转,控制器跳转示例
2019/10/22 PHP
jquery 问答知识整理
2010/02/11 Javascript
在js文件中如何获取basePath处理js路径问题
2013/07/10 Javascript
javascript闭包的理解
2015/04/01 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
2018/08/30 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
vue-cli设置css不生效的解决方法
2020/02/07 Javascript
[01:24:09]Ti4 冒泡赛第二轮DK vs C9 1
2014/07/14 DOTA
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
python使用mysqldb连接数据库操作方法示例详解
2013/12/03 Python
python logging类库使用例子
2014/11/22 Python
构建Python包的五个简单准则简介
2015/06/15 Python
python查看FTP是否能连接成功的方法
2015/07/30 Python
Python实现各种排序算法的代码示例总结
2015/12/11 Python
python3 与python2 异常处理的区别与联系
2016/06/19 Python
对Python中实现两个数的值交换的集中方法详解
2019/01/11 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
Python中一个for循环循环多个变量的示例
2019/07/16 Python
python不使用for计算两组、多个矩形两两间的iou方式
2020/01/18 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
Sentry错误日志监控使用方法解析
2020/11/12 Python
html5指南-1.html5全局属性(html5 global attributes)深入理解
2013/01/07 HTML / CSS
遗愿清单观后感
2015/06/09 职场文书
用Python实现一个打字速度测试工具来测试你的手速
2021/05/28 Python
详解Vue slot插槽
2021/11/20 Vue.js