使用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 ...
随机推荐
- mac 搭建APK反编译环境[转]
APKtool 用途:获取mainifest.xml res等资源文件 下载:http://ibotpeaches.github.io/Apktool/install/ 使用:apktool d te ...
- 30秒攻破任意密码保护的PC:深入了解5美元黑客神器PoisonTap
近日,著名硬件黑客Samy Kamkar利用5美元设备打造的黑客工具PoisonTap,只需30秒,就可以攻破设置有任意密码的电脑系统,并实现长期后门安装.PoisonTap不是暴力破解密码,而是绕过 ...
- win7 ubuntu 14.04双系统安装
安装win7和linux双系统,一般先安装win7,后安装linux,本片就是指在安装好win7的情况下,安装ubuntu. 准备材料: EasyBCD软件 ubuntu14.04iso镜像文件,64 ...
- 9.5---所有字符串的排列组合(CC150)
1,这个是自己写的.一直LTE. public static ArrayList<String> getPerms(String str) { if (str == null) { ret ...
- ubuntu 14.04 对exfat的支持
sudo apt-get install exfat-utils exfat-fuse sudo reboot
- [转]Python的ASCII, GB2312, Unicode , UTF-8
2007-12-13 10:50:47| 分类: Python实用软件编|举报|字号 订阅 ASCII 是一种字符集,包括大小写的英文字母.数字.控制字符等,它用一个字节表示,范围是 0-1 ...
- SQL 大数据查询如何进行优化?
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而 ...
- C语言也能干大事1
今天看了个视频,叫C语言也能干大事,写了第一个WIN项目的代码,感觉特别好,就像以前刚刚学会写C语言一样, 然后就恶搞出一个东西,最后的结果就是这个东西退出不了了
- 7.nodejs权威指南--加密与压缩
1. 加密与压缩 1.1 加密 var crypto = require('crypto'); var text = "12345678"; var hasher = crypto ...
- SAP 凭证类别
文章摘要:基本分为收.付.转三类,和传统的会计凭证分类一样.SA,总帐凭证.(转帐凭证)KA,供应商凭证.(付款凭证)KR,应付供应商凭证.(付款凭证)KG,供应商转来的红字发票,SAP称为贷方凭证. ...