import sys, hashlib
import os
inputFile = 'C:\Users\User\Desktop\hashes.txt'
sourceDir = 'C:\Users\User\Desktop\Test Directory'
hashMatch = False
for root, dirs, files in os.walk(sourceDir):
for filename in files:
sourceDirHashes = hashlib.md5(filename)
for digest in inputFile:
if sourceDirHashes.hexdigest() == digest:
hashMatch = True
break
if hashMatch:
print str(filename)
else:
print 'hash not found'
inputFile =
的内容2899ebdb5f7a90a216e97b3187851fc1
54c177418615a90a6424cb945f7a6aec
dd18bf3a8e0a2a3e53e2661c7fb53534
sourceDir files =
的内容test
test 1
test 2
我几乎有代码工作,我只是在某个地方绊倒。我发布的当前代码总是返回else语句,即没有找到哈希,即使它们已经验证了这一点。我提供了sourceDir的内容,以便有人尝试这个,文件名是test,test 1和test 2,文件中的内容相同。
我必须添加,但我不是要查找脚本来打印实际的文件内容,而是查找文件的名称。
有人可以建议我哪里出错了,为什么说这种情况是假的?
答案 0 :(得分:1)
您需要使用open(inputFile,' rt')打开inputFile,然后您可以读取哈希值。另外,当您读取哈希值时,请确保先将它们剥离以除去行尾的新行字符\ n