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())
如果有人愿意帮助我,那就太好了。谢谢你提前。
答案 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())