面对大文件,可能一次read出来文件过大,内存占用过多,所以可以一小部分一小部分的拿出来,然后再检查md5值。
import hashlib
import sys
def check_md5(fname):
m = hashlib.md5()
with open(fname, 'rb') as fobj:
while True:
data = fobj.read(4096) # 每次取出4096字节
if not data: # 如果没有了,就推出
break
m.update(data)
return m.hexdigest()
if __name__ == '__main__':
print(check_md5(sys.argv[1]))