Python 在目录中查找多个字符串

Python 在目录中查找多个字符串,python,csv,directory,Python,Csv,Directory,我有一个满是文件的目录和一组需要识别的字符串(大约40个)。我希望遍历目录中的所有文件,并打印出包含任何字符串的文件名。我发现代码可以完美地工作(),但它只适用于一个字符串。每当我尝试添加更多内容时,它都会打印出目录中每个文件的名称。有人能帮我调整代码吗?因为我几天前刚开始编程,不知道该怎么做 import glob for file in glob.glob('*.csv'): with open(file) as f: contents = f.read()

我有一个满是文件的目录和一组需要识别的字符串(大约40个)。我希望遍历目录中的所有文件,并打印出包含任何字符串的文件名。我发现代码可以完美地工作(),但它只适用于一个字符串。每当我尝试添加更多内容时,它都会打印出目录中每个文件的名称。有人能帮我调整代码吗?因为我几天前刚开始编程,不知道该怎么做

import glob
for file in glob.glob('*.csv'):
    with open(file) as f:
        contents = f.read()
    if 'string' in contents:
        print file
该代码取自我上面提到的问题。如果您能提供任何帮助,我们将不胜感激,如果您有任何关于提问的建议,我们将不胜感激!谢谢大家!

您可以尝试:

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

关于提出更好的问题:

我只想使用
grep

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

预期的结果是什么?至少包含一个字符串的文件列表或包含所有字符串的文件列表?@sashkello:至少一个..然后@Bonifacio2 answer应该可以工作。我对此有点陌生,你能再解释一下吗?但grep不是python