You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python对三类不同名称后缀的图像构建训练数据集

实现代码
import os
import shutil

# 定义文件名关键词和对应目标文件夹的映射关系
category_map = {
    "face": "Dog face",
    "body": "Dog body",
    "tail": "Dog tail"
}

# 批量创建目标文件夹,不存在则自动创建
for folder_name in category_map.values():
    os.makedirs(folder_name, exist_ok=True)

# 遍历当前目录及子目录下所有文件
for root, dirs, files in os.walk("."):
    for filename in files:
        if filename.endswith(".png"):
            # 匹配文件所属类别
            target_folder = None
            for keyword, folder in category_map.items():
                if keyword in filename:
                    target_folder = folder
                    break
            # 未匹配到类别则跳过
            if not target_folder:
                print(f"未匹配到类别的文件:{filename}")
                continue
            # 拼接原文件完整路径和目标路径
            src_path = os.path.join(root, filename)
            dst_path = os.path.join(target_folder, filename)
            # 移动文件,若需要保留原文件可替换为 shutil.copy2(src_path, dst_path)
            shutil.move(src_path, dst_path)
            print(f"已处理文件:{filename} -> {target_folder}")
注意事项
  • 代码默认执行移动文件操作,如果担心原文件丢失,可将shutil.move替换为注释中提到的shutil.copy2,复制文件到目标文件夹,原文件保留
  • 代码默认按照「文件名包含对应关键词」匹配类别,和你需求里的「后缀为对应类别」逻辑一致,如果你的文件名规则是后缀用下划线分隔(如xxx_face.png),需要更高匹配精度可将判断逻辑修改为if filename.split('.')[0].endswith(keyword)
  • 未匹配到任何类别的文件会在控制台打印提示,不会被移动/复制

内容的提问来源于stack exchange,提问作者user16452440

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 10:06:01