我正在从电子邮件对象中获取附件,并创建一个临时文件,如下所示:
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
答案 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())