繁体   English   中英

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

[英]Fastest way to check whether a file contains any string from a list of strings

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

errorList = ["errorPattern1", "errorPattern2",..., "errorPatternN"]

用Python最快的方法是哪种?

嵌套循环遍历目录中的.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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM