如何用Python将多文件夹对应序号文件批量归集到新文件夹并解决重名问题
实现方案
核心解决思路
重名冲突通过给文件追加来源文件夹的唯一标识解决,保证同目标文件夹下所有文件名唯一。
分步操作
- 前置整理
先给9个存放原始视频的文件夹设置唯一标识名,比如按顺序命名为src_01到src_09,同时提前创建好130个目标文件夹,命名为folder_01到folder_130。 - 重命名规则设定
把来源文件夹标识作为前缀加到原文件名前面,格式为[来源标识]_原文件名.扩展名。比如来自src_01的lesson_01.mp4,移动到folder_01后命名为src01_lesson_01.mp4,同个目标文件夹下的9个文件不会出现重名。 - 批量执行逻辑
1170个文件的量级推荐用脚本批量完成移动+重命名操作,避免手动处理的误差,核心Python代码逻辑参考:
如果文件量较小不想写脚本,也可以手动按照上述重命名规则逐个移动,只是出错概率更高。import os import shutil # 配置参数,根据自己的实际路径修改 src_root = "你的原始9个文件夹的上级目录路径" target_root = "你要存放folder_01到folder_130的上级目录路径" src_folders = [f"src_{i:02d}" for i in range(1,10)] # 对应9个已重命名的原始文件夹 total_file_count = 130 # 提前创建所有目标文件夹 for i in range(1, total_file_count+1): os.makedirs(os.path.join(target_root, f"folder_{i:02d}"), exist_ok=True) # 遍历每个原始文件夹,移动并重命名文件 for src_idx, src_folder in enumerate(src_folders, start=1): src_folder_path = os.path.join(src_root, src_folder) # 按文件名排序获取文件,确保序号和你的需求匹配 video_files = sorted([f for f in os.listdir(src_folder_path) if f.endswith(('.mp4', '.mov', '.avi', '.mkv'))]) # 可补全你用到的视频格式后缀 for file_idx, original_file_name in enumerate(video_files, start=1): # 构建不重复的新文件名 new_file_name = f"src{src_idx:02d}_{original_file_name}" # 拼接目标文件路径 target_file_path = os.path.join(target_root, f"folder_{file_idx:02d}", new_file_name) # 执行移动操作 shutil.move(os.path.join(src_folder_path, original_file_name), target_file_path) - 校验环节
批量操作完成后,可统计每个folder_xx下的文件数量,确认都是9个且无重名即可。
内容的提问来源于stack exchange,提问作者Lakpa Tamang
相关产品推荐
相关产品推荐

