如何保持PNG与JSON文件关联的同时随机重命名配对文件?
配对PNG/JSON文件随机重命名方案
实现步骤
- 提前创建空的目标文件夹,避免与原文件产生冲突
- 提取原文件夹中所有1-1000的配对编号
- 生成1-1000的随机打乱序列,保证每个编号唯一不重复
- 遍历每一对原文件,复制到目标文件夹并替换为新编号
Python代码实现
import os import shutil import random # 替换为你的实际路径 source_dir = "原文件所在文件夹路径" target_dir = "新文件夹路径" # 创建目标文件夹(不存在则自动生成) os.makedirs(target_dir, exist_ok=True) # 生成原编号列表并随机打乱 original_nums = list(range(1, 1001)) random.shuffle(original_nums) # 构建原编号到新编号的一一映射 num_mapping = dict(zip(original_nums, range(1, 1001))) # 批量处理文件对 for old_num, new_num in num_mapping.items(): # 处理PNG文件 old_png_path = os.path.join(source_dir, f"{old_num}.png") new_png_path = os.path.join(target_dir, f"{new_num}.png") if os.path.exists(old_png_path): shutil.copy2(old_png_path, new_png_path) # 处理JSON文件 old_json_path = os.path.join(source_dir, f"{old_num}.json") new_json_path = os.path.join(target_dir, f"{new_num}.json") if os.path.exists(old_json_path): shutil.copy2(old_json_path, new_json_path) print("文件复制并重命名完成")
关键细节说明
- 编号唯一性:通过
random.shuffle打乱原编号序列,再与1-1000的有序序列配对,确保新编号无重复 - 文件完整性:使用
shutil.copy2复制文件时会保留原文件的元数据(如创建时间),若只需复制内容可改用shutil.copy - 容错机制:加入
os.path.exists判断,避免因个别文件缺失导致程序中断
内容的提问来源于stack exchange,提问作者Nilo dos Santos Orlandi
相关产品推荐
相关产品推荐

