我想读取文件找到文件的md5并在mac中复制文件。 但是,我没有这样的文件或目录错误。我的代码如下;
import os
import hashlib
def md5bul (dosyayolu):
try:
BLOCKSIZE = 65536
hasher = hashlib.md5()
with open(dosyayolu, 'rb' 'utf8') as afile:
buf = afile.read(BLOCKSIZE)
while len(buf) > 0:
hasher.update(buf)
buf = afile.read(BLOCKSIZE)
print(hasher.hexdigest())
except IOError, e:
print ' Error %s' %e
root = '/Users/username/'
for path, subdirs, files in os.walk(root):
for name in files:
dosya = path+name
md5bul (path,name)
print os.path.join(path, name)
但是,我收到以下错误消息;
[Errno 2] No such file or directory:
我不明白为什么会收到此错误消息
你是否意识到代码中存在错误?
答案 0 :(得分:0)
很明显,dosya = path+name
不正确,因为path
的{{1}}没有尾随斜杠,例如: / Users / username ,所以添加文件名' test'变为 Users / usernametest ,这是不正确的。
其次,您的os.walk
正在使用一个参数来调用2 md5bul (dosyayolu)
,这就是为什么它会抛出文件未找到错误。
您可以改为致电:
md5bul (path,name)
答案 1 :(得分:0)
但;
print dosya = path + name
输出为“/ Users / username / Desktop / C”
其次是的你是真的,但我错了粘贴代码。 通常,我将此行写为md5bul(dosyayolu)
答案 2 :(得分:0)
ok @anzel我解决了这个问题谢谢。 我改变了我的代码如下;
with open(os.path.join (path,name), 'rb' 'utf8') as afile: