0

我有一个充满文件的目录和一组需要识别的字符串(大约 40 个)。我想浏览目录中的所有文件并打印出包含我的任何一个字符串的文件的名称。我发现代码可以完美运行(搜索特定字符串的目录),但它只适用于一个字符串。每当我尝试添加更多内容时,它都会打印出目录中每个文件的名称。几天前我刚开始编程并且不知道该怎么做,有人可以帮我调整代码。

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

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

4

2 回答 2

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

关于提出更好的问题:链接

于 2013-08-28T00:07:50.257 回答
0

我只会使用grep

$ grep -l -f strings.txt *.csv
于 2013-08-28T00:11:20.120 回答