检查文本文件中是否包含字符串的任何部分

时间:2019-07-04 09:16:29

标签: python string substring

这是我的代码:

    for r, d, f in os.walk(path):
        for folder in d:
            folders.append(os.path.join(r, folder))

    for f in folders:
        with open('search.txt') as file:
            contents = file.read()
            if f in contents:
                print ('word found')

我正在脚本中搜索给定目录,并将路径名与充满病毒定义的文本文件进行比较。我正在尝试让脚本识别该文本文件中是否包含文件名。

我从代码中可以发现问题,它只能与完全匹配一起工作,并且它将路径作为字符串(例如;“ C:/test/virus.bat”)永远不会匹配。

是否可以调整此代码,以使路径的任何部分都可以与文本文件匹配?

不确定是否有意义,欢迎提出任何建议,或者如果不清楚则请说。

编辑:

更清楚地说,这是我要实现的逻辑版本:

  • 列出目录中的所有文件
  • 在路径名中获取文件名(“ C:/ test / virus”中的“ virus”)
  • 检查文件名是否包含在文本文件中

1 个答案:

答案 0 :(得分:0)

您可以使用以下命令获取给定路径中的所有文件:

files = []
for r, d, f in os.walk(path):
    for folder in d:
        if f:
            for file in f:
                files.append(os.path.join(r, folder, file).replace('\\', '/'))

然后稍微修改您的代码以获得结果。您要检查文件的内容是否在给定的文件路径中,而不是相反-> if content in f

for f in files:
    with open('search.txt', 'r') as file:
        content = file.read()
        if content in f:
            print('Found')