您的位置:首页 > 编程语言 > Python开发

Python中的fileinput模块和tempfile模块

2010-04-18 10:34 435 查看
Python中的fileinput模块和tempfile模块
fileinput模块提供处理一个或多个文本文件的功能, 可以通过使用for..in来循环读取一个或多个文本文件内容.
import fileinput
import sys
import glob
import string

for line in fileinput.input("test.txt"): #处理一个文本文件
print line

for line in fileinput.input(glob.glob("samples/*.txt")): #处理多个文本文件
if fileinput.isfirstline():
print "------ reading %s ------/n" % fileinput.filename() #获取文件名称
print str(fileinput.lineno()) + " " + string.upper(line) #获取行号和内容, 注意这里的行号是继前面文件行号来处理的,而不是重新开始计算

tempfile模块提供给你一个快速创建一个命名唯一的临时文件

import tempfile
import os

tempf = tempfile.mktemp(dir="D:/")

print "tempfile", "=>", tempf

file = open(tempf, "w+b")
file.write("*" * 1000)
file.seek(0)
print len(file.read()), "bytes"
file.close()

try:
os.remove(tempf) #用完以后要注意删除临时文件
except OSError:
pass

当然你还可以通过file = tempfile.TemporaryFile()直接为你创建一个临时文件,并且打开.

////////////

Python之fileinput 模块

fileinput模块允许你循环一个或多个文本文件的内容, 我们可以使用这个功能去分析处理Log

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)

还可以使用 fileinput模块获得当前行的元信息 (meta information). 其中包括 isfirstline, filename, lineno

作者:Shane
出处:http://bluescorpio.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: