基于二元标签列表将指定文件夹图片分类至对应目标文件夹的需求
按标签批量分类图片的Python实现
可以用Python的os和shutil模块快速实现这个需求,代码逻辑清晰且容易维护:
import os import shutil # 定义路径 source_dir = "all_images" target_dirs = {0: "0_folder", 1: "1_folder"} # 确保目标文件夹存在,不存在则创建 for dir_path in target_dirs.values(): if not os.path.exists(dir_path): os.makedirs(dir_path) # 遍历分类列表 image_list = [['0.jpg',0], ['1.jpg',1], ['2.jpg',1], ['3.jpg',0], ['4.jpg',1]] for img_name, label in image_list: source_path = os.path.join(source_dir, img_name) # 检查源文件是否存在,避免报错 if os.path.exists(source_path): target_path = os.path.join(target_dirs[label], img_name) shutil.move(source_path, target_path) else: print(f"文件 {img_name} 不存在于 {source_dir},跳过")
关键说明
os.makedirs():递归创建目标文件夹,即使上级目录不存在也能生成shutil.move():实现文件的移动操作,相当于剪切粘贴- 增加了文件存在检查,避免因文件缺失导致程序崩溃
注意事项
- 确保
source_dir的路径正确,使用绝对路径会更稳妥 - 运行脚本前确认有对应文件夹的读写权限
- 如果需要复制而非移动文件,可替换
shutil.move()为shutil.copy2()(保留文件元数据)
内容的提问来源于stack exchange,提问作者Matt2918
相关产品推荐
相关产品推荐

