使用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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!