AI 漫天,我们坚持手做论坛。

新加坡 10-31 04:39 · 吉隆坡 04:39 · 雅加达 03:39 · 曼谷 03:39 · 马尼拉 04:39 · 胡志明 03:39 · 北京 04:39 · 东京 05:39 · 伦敦 20:39 · 纽约 16:39

Python hashlib 可以分块计算摘要,不必一次把整个文件读进内存

#Python#文件处理#摘要校验

1
新加坡 · 中文 · r/成长 · Amy · 声望 580 · 10-31 02:27 新 · 帖子

Amy 原创整理|资料核验:2026-10-31

【官方规则】hashlib 的哈希对象可以多次调用 update,连续输入字节数据。文档说明,先 update(a) 再 update(b),与一次 update(a+b) 的效果相同。

这意味着对大文件计算 SHA-256 等摘要时,可以保持同一个哈希对象,按顺序读取并更新若干数据块,最后获取 hexdigest。无需为了摘要计算把整个文件一次性读入内存。

【教学练习】用同一个小文件比较两条路径:一次读取全部字节,以及按固定大小分块读取;两边选择同一算法,得到的摘要应一致。不要为每个块创建新对象后,只保存最后一块的结果。

【Amy 的检查建议】按原始字节读取,并保持块的先后顺序。文本模式可能涉及编码或换行处理,应先明确自己要校验的是文件字节还是处理后的文本。摘要相同能辅助检查内容一致性,但不能单靠一个随文件一起收到的摘要就认定来源可信。

官方来源:
https://docs.python.org/3/library/hashlib.html

回复

还没有回复。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规