使用Python 獲取文件的MD5
使用Python 獲取文件的MD5 值是一件很簡單的事情,Python 提供了md5 和 hashlib 兩個模塊,都可以獲取到文件的md5值。
代碼如下:
#獲取文件的MD5值,適用于小文件 def getFileMD5(self,filepath): if self.isFile(filepath): f = open(filepath,'rb') md5obj = hashlib.md5() md5obj.update(f.read()) hash = md5obj.hexdigest() f.close() return str(hash).upper() return None
上面的代碼已經適用與獲取絕大多數文件的md5值。
然而,仔細看代碼,就會發現,在獲取md5值時,實際上有一個讀文件的過程。這樣就會有一個問題,倘若文件非常大,大于機器內存的時候,上面的代碼就會有問題,解決方法是可以分多次讀取,代碼如下:
#獲取文件的MD5值,適用于較大的文件 def getBigFileMD5(self,filepath): if self.isFile(filepath): md5obj = hashlib.md5() maxbuf = 8192 f = open(filepath,'rb') while True: buf = f.read(maxbuf) if not buf: break md5obj.update(buf) f.close() hash = md5obj.hexdigest() return str(hash).upper() return None
另外,需要注意的是:在python 3.2 版本中已經取消了 md5 模塊,因此在獲取md5 時,建議采用 hashlib 模塊。
本文由用戶 ybw8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!