较小文件处理方法:
代码如下 | 复制代码 |
importhashlib importos defget_md5_01(file_path): md5=None ifos.path.isfile(file_path): f=open(file_path,'rb') md5_obj=hashlib.md5() md5_obj.update(f.read()) hash_code=md5_obj.hexdigest() f.close() md5=str(hash_code).lower() returnmd5 if__name__=="__main__": file_path=r'D:testtest.jar' md5_01=get_md5_01(file_path) print(md5_01) |
较大文件处理方法:
代码如下 | 复制代码 |
importhashlib importos defget_md5_02(file_path): f=open(file_path,'rb') md5_obj=hashlib.md5() whileTrue: d=f.read(8096) ifnotd: break md5_obj.update(d) hash_code=md5_obj.hexdigest() f.close() md5=str(hash_code).lower() returnmd5 if__name__=="__main__": file_path=r'D:testtest.jar' md5_02=get_md5_02(file_path) print(md5_02) |
说明:对于同一个文件,两种方法计算得到的md5是一致的。
注:以上代码在Python 3.x版本测试通过。