如何检查目录/子目录中的任何文件中是否存在字符串?

How can I check if a string exists in any file within a directory / subdirectory?

我有一个字符串列表,我想打印出目录中文件中不存在的所有字符串。 (我不想检查 headers)

我知道如何遍历列表,但一直无法找到如何在目录的所有文件中搜索。

这是我目前得到的:

import fnmatch
import os

matches = []
for root, dirnames, filenames in os.walk('BrowserClient'):
  for filename in fnmatch.filter(filenames, 'file.png'):
    print filename

这只搜索文件名,我想搜索目录和子目录中的每个文件。

您必须 open 文件:

import fnmatch
import os

targets = ['Hello', 'World', 'Foo', 'Bar']
matches = []
for root, dirnames, filenames in os.walk('BrowserClient'):
  for filename in fnmatch.filter(filenames, 'file.png'):
    for word in open(filename, 'r').read().split():
      for item in target:
        if word == item:
          matches.append([filename, item])