我们已知,当我们对字符串进行md5计算的方法:
import hashlib
test_string = "Hello, World!"
test_string_b = test_string.encode()
test_string_md5 = hashlib.md5(test_string)
test_string_md5_hex = test_string_md5.hexdigest()
按照相似的流程,可以通过对文件的每行计算进行文件的md5计算
md5 = hashlib.md5()
for i in ["I am a cat", "I am a fish", "dog dog dog", "I am the ending"]:
i_b = i.encode()
md5.update(i_b)
> md5.hexdigest()
'9e3d01f967a22273583728694addaa54'
但是当遇到压缩大文件时,应该怎么办,比如fasta数据压缩成的fq.gz文件——一般压缩后2G左右。首先解压缩?然后每行读取然后update?
这时碰到了md5hash包,只需简单的scan命令就可返回hexdigest值,无须手动解压缩和读取。
>from md5hash import scan
>scan("Col-0.fq.gz")
81F1DABA67549692FA9A05D1CC
本文介绍了一种优化的大文件MD5计算方法,通过使用md5hash包简化了对压缩文件如fasta数据压缩成的fq.gz文件的MD5计算过程,无需手动解压和逐行读取。
507

被折叠的 条评论
为什么被折叠?



