使用python递归子目录处理日志文件
重要说明:
(1)python使用4个空格进行层次缩进的(不是tab),在eclipse里面可以直接使用tab缩进,是因为eclipse会实时地将tab转成4个空格
(2)在eclipse中安装pyDev插件,就可以调试python脚本了
(3)如果在python文件中存在中文字符,需要在python文件的开头处指明文件的编码类型,形式如:#coding=gbk
(4)以下代码使用的是python2.7.3版本
+++++++++ main.py +++++++++
#coding=gbk
# filename : main.py
# author : kekec
# date : 20140813 import os,sys
import filedir
import filter file_suffix = '*.txt'
root_path = 'F:\\新建文件夹\\20140714'
result_path = unicode('result.txt' , "utf8")
wfile = open(result_path, 'w')
for i in filedir.search_file(file_suffix, root_path):
print i
bfile = False;
rfile = open(i, 'r')
while 1:
line = rfile.readline()
if not line:
break if (False == filter.is_filter(line)):
if (False == bfile):
wfile.write(i)
wfile.write('\n')
bfile = True
print line
wfile.write(line)
wfile.flush() rfile.close()
wfile.close()
+++++++++ filedir.py +++++++++
#coding=gbk
# filename : filedir.py
# author : kekec
# date : 20140813 import os,sys,fnmatch def search_file(pattern="*.txt", root=os.curdir):
for path, dirs, files in os.walk(os.path.abspath(root)):
for filename in fnmatch.filter(files, pattern):
yield os.path.join(path, filename)
+++++++++ filter.py +++++++++
#coding=gbk
# filename : filter.py
# author : kekec
# date : 20140813 ALOG_0 = '[ERROR]'
BLOG_0 = 'OnGameUpdateDB'
CLOG_0 = 'Field25'
DLOG_0 = 'execute'
ELOG_0 = 'failed' def is_filter(line):
a = line.find(ALOG_0) >= 0
b = line.find(BLOG_0) >= 0
c = line.find(CLOG_0) >= 0
d = line.find(DLOG_0) >= 0
e = line.find(ELOG_0) >= 0 return (a and b and c and d and e)
使用python递归子目录处理日志文件的更多相关文章
- 使用python脚本实现统计日志文件中的ip访问次数
使用python脚本实现统计日志文件中的ip访问次数,注意此脚本只适用ip在每行开头的日志文件,需要的朋友可以参考下 适用的日志格式: 106.45.185.214 - - [06/Aug/2014: ...
- Python中将打印输出导向日志文件
a. 利用sys.stdout将print行导向到你定义的日志文件中,例如: import sys # make a copy of original stdout route stdout_back ...
- Linux系统——日志文件
日志文件的分类 (1)内核及系统日志 由系统服务rsyslog管理,根据去主配置文件/etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置. /etc/rsyslog ...
- docker容器中日志文件过大处理方法
背景 :在日常工作中一个基于centos镜像构建起来的python爬虫程序,日志文件在两个月内到了500G,日志存放在根目录下面,在不扩容的情况下把这个问题给解决掉.通过定时任务和脚本的方法,定期的清 ...
- python递归列出目录及其子目录下所有文件
python递归列出目录及其子目录下所有文件 一.前言 函数的递归,简单来说,就是函数内部调用自己 先举个小例子,求阶乘 def factorial(n): if n == 0: return 1 e ...
- C#递归遍历子目录与子目录中的文件
[转载]作者:weixingstudio 采用C#,通过指定一个路径,来递归的遍历所有的子目录以及子目录中的文件,建一个类似资源管理器的目录树 先递归的遍历所有的子目录,如果没有子目录以后,则遍历所有 ...
- python 实时遍历日志文件
首先尝试使用 python open 遍历一个大日志文件, 使用 readlines() 还是 readline() ? 总体上 readlines() 不慢于python 一次次调用 readlin ...
- Python同时向控制台和文件输出日志logging的方法 Python logging模块详解
Python同时向控制台和文件输出日志logging的方法http://www.jb51.net/article/66756.htm 1 #-*- coding:utf-8 -*- 2 import ...
- Linux(9)后台运行python程序并输出到日志文件
后台运行python程序并标准输出到文件 现在有test.py程序要后台部署, 里面有输出内容 使用命令: nohup python -u test.py > test.log 2>&am ...
随机推荐
- discuzX3后台管理插件开发入门
discuz官方有完整的插件开发文档,详见: http://open.discuz.net/?ac=document&page=dev_plugin 关于discuz前台插件入门可以见这篇文: ...
- ubuntu14.04 163sources.list
deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse deb http://mirrors.163 ...
- POJ 3728
http://poj.org/problem?id=3278 题目大意就是在同一坐标轴上给你一个人的坐标,一个牛的坐标,而人的运动每一次运动有三种方式,一种是后退1,一种是前进1,还有一种是坐标翻倍, ...
- oracle,mybatis主键自增长
<insert id="insert" parameterType="resource"> <selectKey resultType=&qu ...
- iso网络各层协议
(1)网卡的作用就是把数据进行串并转换(串连数据是比特流形式的,存在与本计算机内部,而计算机与计算机之间是通过帧形式的数据来进行数据传输的),MAC子层规定了如何在物理线路上传输的frame,LLC的 ...
- linux下的audit服务
audit ['ɔːdɪt] 审计 auditd是linux的一个审计服务. 这是man下的解释 auditd is the userspace component to the Linux A ...
- JStorm集群的部署
JStorm是一个类似Hadoop MapReduce的系统,不同的是JStorm是一套基于流水线的消息处理机制,是阿里基于Storm优化的版本,和Storm一样是一个分布式实时计算的系统,从开发角度 ...
- Redis集群的部署
Redis集群分为主节点Master和从节点Slave,主节点只有1个,而从节点可以有多个,这样从节点和主节点可以进行数据的传输,Redis集群的性能将比单机环境更高,接下来是配置的过程 首先配置Ma ...
- Django ~module index
https://docs.djangoproject.com/en/1.9/py-modindex/ django.conf.urls django.contrib.admin django.db.m ...
- ZipArchive和SSZipArchive使用详解
一.SSZipArchive 1.简介 SSZipArchive是iOS和Mac上一个简单实用的压缩和解压插件.用途包括:1.解压zip文件:2.解压密码保护的ZIP文件:3.创建新的zip文件:4. ...