IFE 2019年03月12日 分类: Python学习笔记 标签: Python 浏览量: 2705
用Python从网上保存图片时,有时需要计算图片或文件的md5值。以下为计算md5的几种方式:
一、如果知道文件的url
import hashlib def get_md5(url): if isinstance(url, str): url = url.encode("utf-8") m = hashlib.md5() m.update(url) # 返回十六进制数据字符串值 return m.hexdigest() if __name__ == '__main__': print(get_md5("https://baidu.com".encode("utf-8")))
注意:Python3中所有字符都变成了Unicode,但get_md5函数不接受Unicode,所以需要进行encode编码,才会被hashlib接受。
二、计算本地文件的md5
import hashlib file = open("localfile.jpg","r") f = file.read() m = hashlib.md5() m.update(f) print m.hexdigest() f.close()
三、当文件较大时
import hashlib import os def getBigFileMD5(filepath): if os.path.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