检查文件是否包含字符串列表中的任何字符串的最快方法

时间:2016-02-05 07:08:27

标签: python python-2.7

我有几个.tgz日志文件,每个文件包含几百到几千行。我还有一个错误字符串列表。我必须读取zip文件中的每个日志文件,并检查该文件中是否存在任何错误字符串。我还需要获取找到错误模式的文件的名称。

Ctrl

哪种方法在Python中最快?

1 个答案:

答案 0 :(得分:1)

嵌套循环遍历' .tgz'目录中的文件和每个tarfile中的项目。立即读取整个文件对象的文本。然后检查文本中是否有任何错误模式。

这样的事情:

import glob, tarfile

for fname in glob.iglob('*.tgz'):
    with tarfile.open('filename', 'rb') as tar:

        for info in iter(tar.next, None):
            text = tar.extractfile(info).read()

            if any(msg in text for msg in error_list):
                print "an error message was found in: ", info.name