使用fileinput操作文件名列表

时间:2014-10-10 21:08:32

标签: python

我正在编写一个函数来读取目录中的错误日志,并打印错误的具体原因(标记为以Error :)开头的行。理论上,可能有数百个错误文件,因此我需要打开,读取和过滤数百个文件。 Fileinput似乎是在这个实例中使用的正确模块,但它似乎只在一个文件上工作,尽管我知道它应该处理多次,我想知道是否有我的代码,对python来说很新。

后台,我os。浏览了我正在查找的目录,并将所有错误日志的路径放入列表中,现在我想查看列表,打开列表中的每个文件(自列表item是文件路径)然后在它们内部行换行并提取错误消息。

代码:

for item in failures: 
    for line in fileinput.input(item):
        if re.match('Error:', line):
            print line

输出成功,但它多次打印一个文件的输出,而不是列表中所有唯一项的输出。

1 个答案:

答案 0 :(得分:0)

"要指定另一个文件名列表,请将其作为input()的第一个参数传递。" https://docs.python.org/2/library/fileinput.html

提供列表而不是单个文件。 你不需要外部for循环。

Alan Isaac