我正在编写一个函数来读取目录中的错误日志,并打印错误的具体原因(标记为以Error :)开头的行。理论上,可能有数百个错误文件,因此我需要打开,读取和过滤数百个文件。 Fileinput似乎是在这个实例中使用的正确模块,但它似乎只在一个文件上工作,尽管我知道它应该处理多次,我想知道是否有我的代码,对python来说很新。
后台,我os。浏览了我正在查找的目录,并将所有错误日志的路径放入列表中,现在我想查看列表,打开列表中的每个文件(自列表item是文件路径)然后在它们内部行换行并提取错误消息。
代码:
for item in failures:
for line in fileinput.input(item):
if re.match('Error:', line):
print line
输出成功,但它多次打印一个文件的输出,而不是列表中所有唯一项的输出。
答案 0 :(得分:0)
"要指定另一个文件名列表,请将其作为input()的第一个参数传递。" https://docs.python.org/2/library/fileinput.html
提供列表而不是单个文件。 你不需要外部for循环。
Alan Isaac