2014-11-02 48 views
0

我想读取文件中的find md5文件并在mac中复制文件。 但是,我没有得到这样的文件或目录错误。我的代码如下:在mac中通过python读取文件夹中的文件

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: 

我不understant为什么我收到此错误信息

你实现代码的错误?

回答

0

以及很明显,dosya = path+name是不正确的pathos.walk不具有斜线,如:/用户/用户名,因此添加文件名“测试”成为用户/ usernametest这是不正确。

其次,你md5bul (dosyayolu)正在你在哪里,有2 md5bul (path,name)调用一个参数,这就是为什么它抛出找不到文件错误。

您可以更改调用:

mdfbul(os.path.join(path, name)) 
0

但是,

print dosya = path + name 

输出为 “/用户/用户名/桌面/ C”

,其次是的,你是真的,但我错了粘贴代码。 正常情况下,我写这行为md5bul(dosyayolu)

0

ok @anzel我解决这个问题,谢谢。 我改变我的代码如下;

with open(os.path.join (path,name), 'rb' 'utf8') as afile: 
相关问题