MD5哈希目录中的所有文件

时间:2017-02-19 06:10:48

标签: python hash directory md5

Hello world我是Hashlib的新手,我正在尝试创建一个程序,将所有文件放在一个目录中,然后生成所有md5哈希码。我已经和它一起工作了几个小时,我真的很烦我,我无法弄清楚这一点。这是我到目前为止的代码。

import hashlib, os, sys
for root, dirs,files in os.walk("C:\Users\Matt\AppData\NewFolder", topdown=True):
    for name in files:
        #print(os.path.join(root, name))
FileName = (os.path.join(root, name))

hasher = hashlib.md5()
with open(str(FileName), 'rb') as afile:
    buf = afile.read()
    hasher.update(buf)
print(hasher.hexdigest())

如果有人愿意帮助我,那就太好了。谢谢你提前。

1 个答案:

答案 0 :(得分:2)

您需要将文件读取和散列代码移动到循环体内。

import hashlib, os, sys

for root, dirs,files in os.walk("C:\Users\Matt\AppData\NewFolder", topdown=True):
    for name in files:
        #print(os.path.join(root, name))
        FileName = (os.path.join(root, name))

        hasher = hashlib.md5()
        with open(str(FileName), 'rb') as afile:
            buf = afile.read()
            hasher.update(buf)
        print(hasher.hexdigest())