我有一个充满文件的目录和一组需要识别的字符串(大约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
该代码取自我上面提到的问题。任何帮助将不胜感激,任何提出问题的提示也会更好!谢谢!
答案 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