2014-11-02 780 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: