【问题标题】:Finding many strings in directory在目录中查找许多字符串
【发布时间】:2013-08-28 00:03:17
【问题描述】:

我有一个充满文件的目录和一组需要识别的字符串(大约 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

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

【问题讨论】:

  • 预期的结果是什么?包含至少一个字符串的文件列表还是包含所有字符串的文件列表?
  • @sashkello:至少一个..
  • 然后@Bonifacio2 答案应该可以工作。

标签: python csv directory


【解决方案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

【讨论】:

    【解决方案2】:

    我只会使用grep:

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

    【讨论】:

    • 我对此有点陌生,你能再解释一下吗?
    • 但是 grep 不是 python
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 2014-12-19
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    相关资源
    最近更新 更多