这是我的代码:
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”)永远不会匹配。
是否可以调整此代码,以使路径的任何部分都可以与文本文件匹配?
不确定是否有意义,欢迎提出任何建议,或者如果不清楚则请说。
编辑:
更清楚地说,这是我要实现的逻辑版本:
答案 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')