通过mac中的python读取文件夹中的文件

时间:2014-11-02 18:41:37

标签: python macos filesystems

我想读取文件找到文件的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: 

我不明白为什么会收到此错误消息

你是否意识到代码中存在错误?

3 个答案:

答案 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: