是否有可能在python中获取临时文件的md5哈希?

时间:2018-08-30 05:02:33

标签: python

我正在从电子邮件对象中获取附件,并创建一个临时文件,如下所示:

import tempfile

with tempfile.NamedTemporaryFile() as temp:
    temp.write(payload.get_payload(decode=True))

是否可以从此临时文件中获取md5,还是必须将其保存到磁盘然后获取md5?我的目标是这样的:

import hashlib
print(hashlib.md5(temp).hexdigest())

但是我遇到了这个错误

TypeError: object supporting the buffer API required

1 个答案:

答案 0 :(得分:1)

当您调用hashlib.md5命令时,它确实希望像对象这样的字符串而不是文件句柄。但是,请猜您已经拥有了什么。因此,无需从文件中读回它。

import tempfile
import hashlib

with tempfile.NamedTemporaryFile() as temp:
    data = payload.get_payload(decode=True)
    temp.write(data)
    print(hashlib.md5(data).hexdigest())