Python:返回用于匹配特定条件的文件名

时间:2016-03-25 00:08:40

标签: python-2.7

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,文件中的内容相同。

我必须添加,但我不是要查找脚本来打印实际的文件内容,而是查找文件的名称。

有人可以建议我哪里出错了,为什么说这种情况是假的?

1 个答案:

答案 0 :(得分:1)

您需要使用open(inputFile,' rt')打开inputFile,然后您可以读取哈希值。另外,当您读取哈希值时,请确保先将它们剥离以除去行尾的新行字符\ n