Python3获取文件的MD5

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


评论总数: 0


登陆后才可以评论