赞
踩
在Python中,可以使用hashlib模块来计算文件的MD5值。MD5是一种常用的哈希算法,可以将任意长度的数据转换成固定长度的哈希值。计算文件的MD5值可以用于校验文件的完整性和一致性,以及检测文件是否被篡改。
- import hashlib
-
- # 文件路径
- file_path = "D:\steverocket\CentOS7_back.zip"
-
- def file_md5(file_name):
- """
- 参数:文件名
- return: 获取zip文件的md5
- """
- with open(file_name, "rb") as f:
- content = f.read()
- m = hashlib.md5()
- m.update(content)
- return m.hexdigest()
-
- print(file_md5(file_path))
输出结果:e0585a49d21452937141fff509811dd2
如果计算超大文件的md5值,可以使用分块读取,下面是一个示例代码,用于计算指定文件(300多MB的zip文件)的MD5值:
- import hashlib
-
- # 文件路径
- file_path = "D:\steverocket\CentOS7.zip"
-
- # 打开文件
- with open(file_path, 'rb') as f:
- # 创建MD5对象
- md5_obj = hashlib.md5()
-
- # 读取文件内容,更新MD5对象
- while 1:
- data = f.read(4096) # 每次读取4096字节
- if not data:
- break
- md5_obj.update(data)
-
- # 获取MD5值
- md5_value = md5_obj.hexdigest()
- print(md5_value)
输出结果:e0585a49d21452937141fff509811dd2
如果我们换成计算CentOS7_back.zip文件的md5值,结果还是这个值。该文件是一个由gz文件解压后的zip文件,具体详情由来请参考:Python实战:python操作GZ文件,实现文件压缩与解压缩
在上面的代码中,首先定义了一个文件路径file_path,然后使用open()函数打开文件,并以二进制模式读取文件内容。接着,创建一个MD5对象md5_obj,使用update()方法不断更新MD5值,直到读取完整个文件。最后,使用hexdigest()方法获取MD5值的十六进制表示,并使用print()函数输出MD5值。
本文介绍了如何使用Python计算文件的MD5值。具体实现方法是,使用hashlib模块中的md5()函数创建MD5对象,然后使用update()方法不断更新MD5值,最后使用hexdigest()方法获取MD5值的十六进制表示。如果需要计算大文件的MD5值,可以使用分块读取的方式,将文件分成多个块,每次读取一块数据,并更新MD5对象。
更多资料 · 微信公众号搜索【CTO Plus】关注后,获取更多,我们一起学习交流。
关于公众号的描述访问如下链接
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。