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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值