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

如何从分类文件夹中的图片生成带标签的CSV文件

解决方案:生成带图片名与对应标签的CSV文件

没问题,我来帮你搞定这个CSV生成的问题!你的核心需求是根据图片所在的文件夹(dog/cat/mouse/elephant)来分配标签,之前的思路误区在于试图从文件名里判断类别——但其实图片是按文件夹分类存放的,从文件所在的父文件夹获取类别才是更准确靠谱的方式。

下面是完整的可运行代码,我会一步步拆解关键逻辑:

import os
import csv

# 1. 定义类别到标签的映射,和你的文件夹名严格对应
category_label_map = {
    'dog': 0,
    'cat': 1,
    'mouse': 2,
    'elephant': 3
}

# 2. 你的根路径,注意修正之前的笔误(比如把/content../改成正确的/content/)
root_dir = '/content/'

# 3. 打开CSV文件准备写入,newline=''避免Windows下出现空行
with open('image_labels.csv', 'w', newline='', encoding='utf-8') as csv_file:
    # 创建CSV写入器对象
    csv_writer = csv.writer(csv_file)
    
    # 遍历根目录下的所有文件夹和文件
    for current_dir, subdirs, files in os.walk(root_dir):
        # 跳过根目录本身,只处理子分类文件夹(dog/cat等)
        if current_dir == root_dir:
            continue
        
        # 从当前文件夹路径中提取类别名称(比如从/content/dog里拿到dog)
        category_name = os.path.basename(current_dir)
        # 从映射字典中获取对应的标签,未知类别标记为-1方便排查
        label = category_label_map.get(category_name, -1)
        
        # 遍历当前文件夹下的所有jpg图片
        for file_name in files:
            # 兼容大小写后缀(比如.JPG)
            if file_name.lower().endswith('.jpg'):
                # 写入CSV行:图片名, 对应标签
                csv_writer.writerow([file_name, label])

print("CSV文件已成功生成!")

关键细节解释:

  • 类别映射字典:category_label_map把文件夹名和你需要的数字标签绑定,后续如果新增类别,只需要修改这个字典即可,扩展性很强。
  • 获取文件夹名:用os.path.basename(current_dir)从目录路径中提取类别名,完全避免了文件名里可能出现的歧义(比如万一有图片叫cat_dog.jpg就不会判断错)。
  • 健壮性处理:file.lower().endswith('.jpg')兼容大写后缀的图片;category_label_map.get(...)会给未知类别标记-1,方便你快速排查有没有遗漏的分类文件夹。
  • 路径修正:注意把root_dir改成你实际的根目录路径,之前代码里的/content../应该是输入笔误,要调整成正确的路径格式。

运行这段代码后,你会得到完全符合预期格式的CSV文件:

dog1.jpg,0
dog2.jpg,0
cat1.jpg,1
mouse2.jpg,2
elephant.jpg,3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:30:50