import fileinput
from glob import glob
for line in fileinput.input(glob(r'd:/*.txt')):
print fileinput.lineno(), u'文件:', fileinput.filename(), /
u'行号:', fileinput.filelineno(), u'长度:', len(line.strip('/n'))
fileinput.close()
快速循环处理标准输入和文本文件
for line in fileinput.input()
没带参数,将会循环处理sys.argv中的文件,如果sys.argv是空的,将处理标准输入
fileinput.filename()
返回正在阅读的文件名
fileinput.fileno()
返回正在阅读的文件号
fileinput.lineno()
返回正在阅读的行号
fileinput.isfirstline()
判端是否为第一行
fileinput.isstdin()
判端正在读的是否是标准输入
fileinput.nextfile()
读取下一个文件
fileinput.close()
关闭所有读入的文件
fileinput.FileInput(files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None)
参数
files :文件的路径列表
inplace:是否将标准输出(print方法)的结果写回文件
backup : 备份文件的扩展名
bufsize :缓冲区大小
mode :读写模式
openhook : 打开文件时的钩子
fileinput.FileInput(openhook=fileinput.hook_compressed)
fileinput.hook_compressed
可方便读写.gz .bz2 文件
fileinput.hook_encoded(encoding)
处理文件编码
import fileinput
import sys
import re
pattern = "\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}"
filePath = r"C:\seeUthere_errors.log"
for eachline in fileinput.input(filePath):
m = re.search(pattern, eachline)
if m:
sys.stdout.write("==>> ")
sys.stdout.write(eachline)
转自:http://www.cnblogs.com/bluescorpio/archive/2009/10/19/1586102.html
http://blog.csdn.net/jgood/article/details/5984668等