在一个文件夹中,有3000个json文件,我想将md5相同的json文件提取到同一个文件夹中,python实现
以下是一个使用Python实现的示例代码,可以将具有相同MD5哈希值的JSON文件提取到同一个文件夹中:
import os import shutil import hashlib # 用于计算文件的MD5哈希值 def calculate_md5(file_path): with open(file_path, 'rb') as f: data = f.read() md5_hash = hashlib.md5(data).hexdigest() return md5_hash # 输入文件夹路径和目标文件夹路径 input_folder = '/path/to/input/folder' output_folder = '/path/to/output/folder' # 创建目标文件夹 if not os.path.exists(output_folder): os.makedirs(output_folder) # 存储MD5哈希值和对应文件路径的字典 md5_dict = {} # 遍历输入文件夹中的所有文件 for file_name in os.listdir(input_folder): file_path = os.path.join(input_folder, file_name) # 仅处理JSON文件 if file_name.endswith('.json') and os.path.isfile(file_path): # 计算文件的MD5哈希值 md5_hash = calculate_md5(file_path) # 将文件路径添加到对应的MD5哈希值列表中 if md5_hash in md5_dict: md5_dict[md5_hash].append(file_path) else: md5_dict[md5_hash] = [file_path] # 提取具有相同MD5哈希值的文件到同一个文件夹中 for md5_hash, file_paths in md5_dict.items(): if len(file_paths) > 1: target_folder = os.path.join(output_folder, md5_hash) # 创建目标文件夹 if not os.path.exists(target_folder): os.makedirs(target_folder) # 将文件复制到目标文件夹中 for file_path in file_paths: shutil.copy(file_path, target_folder)
该代码会遍历输入文件夹中的所有JSON文件,计算每个文件的MD5哈希值,并将具有相同哈希值的文件提取到以哈希值命名的文件夹中。如果文件夹不存在,代码会自动创建它。
本文来自博客园,作者:海_纳百川,转载请注明原文链接:https://www.cnblogs.com/chentiao/p/17433532.html,如有侵权联系删除