【发布时间】:2017-11-08 11:02:53
【问题描述】:
我有一项服务接收大小从 MB 到 GB 的 CSV 文件,我需要针对文件的所有内容生成 单个哈希。
是否有一个优化的解决方案不需要我逐行读取文件并连接字符串中的每一行,然后生成该字符串的哈希?对于包含数百万行的文件,这种方法会花费太多时间。
任何帮助将不胜感激。顺便说一句,我将使用来自hashlib 的SHA256 进行散列。
【问题讨论】:
标签: django python-3.x csv hash
我有一项服务接收大小从 MB 到 GB 的 CSV 文件,我需要针对文件的所有内容生成 单个哈希。
是否有一个优化的解决方案不需要我逐行读取文件并连接字符串中的每一行,然后生成该字符串的哈希?对于包含数百万行的文件,这种方法会花费太多时间。
任何帮助将不胜感激。顺便说一句,我将使用来自hashlib 的SHA256 进行散列。
【问题讨论】:
标签: django python-3.x csv hash
使用以下代码完成:
import hashlib
def generateHash(path):
sha256 = hashlib.sha256()
block_size=256*128
with open(path, 'rb') as f:
for chunk in iter(lambda: f.read(block_size), b''):
sha256.update(chunk)
return sha256.hexdigest()
【讨论】: