在目录中查找许多字符串

时间:2013-08-28 00:03:18

标签: python csv directory

我有一个充满文件的目录和一组需要识别的字符串(大约40个)。我想浏览目录中的所有文件,并打印出包含任何一个字符串的文件的名称。我发现代码完全正常(Search directory for specific string),但它只适用于一个字符串。每当我尝试添加更多内容时,它会打印出目录中每个文件的名称。有人可以帮我调整代码,因为我刚刚开始编程,不知道该怎么做。

import glob
for file in glob.glob('*.csv'):
    with open(file) as f:
        contents = f.read()
    if 'string' in contents:
        print file

该代码取自我上面提到的问题。任何帮助将不胜感激,任何提出问题的提示也会更好!谢谢!

2 个答案:

答案 0 :(得分:1)

您可以尝试:

import glob
strings = ['string1', 'string2']
for file in glob.glob('*.csv'):
    with open(file) as f:
        contents = f.read()
    for string in strings:
        if string in contents:
            print file
            break

关于提出更好的问题:link

答案 1 :(得分:0)

我只会使用grep

$ grep -l -f strings.txt *.csv