我有一项服务,收到大小从MB到GB的CSV文件,我需要针对文件的所有内容生成单一哈希。
是否有针对此的优化解决方案,并不要求我逐行读取文件并连接字符串中的每一行,然后生成该字符串的哈希值?对于可能包含数百万行的文件,该方法需要花费太多时间。
任何帮助将不胜感激。顺便说一句,我将使用SHA256
中的hashlib
进行散列。
答案 0 :(得分:0)
使用以下代码:
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()