下面是“Python中使用md5sum检查目录中相同文件代码分享”的完整攻略。
准备工作
在使用Python检查目录中相同文件之前,需要安装md5sum工具。如果是Linux或Unix系统,则已经内置此工具;如果是Windows系统,则需要下载cygwin并安装md5sum。可以在这个网站下载cygwin。
安装完md5sum后,就可以进行Python代码的编写。
检查目录中相同文件
下面是代码示例:
import os
import hashlib
def check_files(path):
# 获取目录下的所有文件
files = os.listdir(path)
# 用于存储每个文件的md5sum值
md5_dic = {}
# 遍历目录下的所有文件
for file in files:
# 获取文件的路径
file_path = os.path.join(path, file)
# 判断是否是文件
if os.path.isfile(file_path):
# 计算文件的md5sum值
with open(file_path, 'rb') as f:
md5 = hashlib.md5(f.read()).hexdigest()
# 将文件的md5sum值添加到字典中,key为md5sum值,value为文件路径
if md5 in md5_dic:
md5_dic[md5].append(file_path)
else:
md5_dic[md5] = [file_path]
# 输出相同md5sum值的文件路径
for key in md5_dic:
if len(md5_dic[key]) > 1:
print("Files with md5sum {}:".format(key))
for file_path in md5_dic[key]:
print("\t{}".format(file_path))
以上代码实现了检查某个目录下所有文件的md5sum值,并输出相同的文件路径。
使用方法为:将上面的代码保存为check_files.py
文件,并在命令行中运行以下命令:
python check_files.py /dir_path/
其中/dir_path/
为目标目录的路径。
批量计算文件md5sum值
下面是代码示例:
import hashlib
def get_file_md5(file_path):
# 计算文件的md5sum值
with open(file_path, 'rb') as f:
md5 = hashlib.md5(f.read()).hexdigest()
# 返回md5sum值
return md5
以上代码实现了计算单个文件的md5sum值的功能。可以将其作为一个函数,方便在其他地方调用。
使用方法为:在其他代码中导入此函数,并调用即可。例如:
import os
from get_file_md5 import get_file_md5
# 获取目录下的所有文件
files = os.listdir('/dir_path')
# 遍历目录下的所有文件,并计算md5sum值
for file in files:
file_path = os.path.join('/dir_path', file)
if os.path.isfile(file_path):
md5 = get_file_md5(file_path)
print("File {} 's md5sum value is {}".format(file_path, md5))
以上代码实现了批量计算某个目录下所有文件的md5sum值,并输出每个文件的md5sum值。
综上所述,以上就是“Python中使用md5sum检查目录中相同文件代码分享”的完整攻略,希望对你有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中使用md5sum检查目录中相同文件代码分享 - Python技术站