python - 是否可以在 python 中获取临时文件的 md5 哈希?
问题描述
我从电子邮件消息对象中获取附件并创建一个临时文件,如下所示:
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
解决方案
当您调用 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())
推荐阅读
- python - Opencv GPU 上的 AlphaPose 与 Python
- html - 通过单击具有相同 css 类的不同元素,将 css 类添加到其中一个,但使用 jQuery 从其他元素中删除它
- python-3.x - Bin 边缘必须是唯一的:array([ 1., 30., 40., 40., 40., 40., 45., 50., 99.])。您可以通过设置 'duplicates' kwarg 来删除重复的边缘
- python - Django - 无法查询用户名,必须是 Tagulous_Post_season 的实例
- php - 如何将中间件应用于 nuwave/lighthouse 版本 5 中的分组查询或突变
- php - 如何在 Woocommerce 上添加过滤器以不在某些产品类别上显示侧边栏
- github - 我试图检查照片,但它们都不是大写的,问题出在哪里?
- r - 需要根据汇总函数的结果在R中生成随机分布的数据
- rundeck - Rundeck - JSON 格式的 API 导入作业响应
- react-native - statusBar 选项无效