Python如何生成exp目录下图片与labels子目录对应txt文件的配对列表
代码调整方案
你现有代码的核心问题如下:
- 遍历
../exp/目录时没有过滤文件类型,会将labels子文件夹也纳入遍历范围 - 没有实现图片和txt文件按文件名前缀匹配的逻辑
第一步:导入依赖库
确保文件开头已经导入所需库:
import glob import os
第二步:修改__init__方法逻辑
def __init__(self): self.imgs_path = "../exp/" self.labels_dir = os.path.join(self.imgs_path, "labels/") self.data = [] # 仅筛选exp目录下的JPG格式图片 for img_path in glob.glob(os.path.join(self.imgs_path, "*.JPG")): # 提取图片的文件名前缀(不含后缀和路径) img_base_name = os.path.basename(img_path) file_prefix = os.path.splitext(img_base_name)[0] # 拼接得到对应txt文件名 txt_name = f"{file_prefix}.txt" # 可选:校验对应标签文件是否存在,避免无效数据 if os.path.exists(os.path.join(self.labels_dir, txt_name)): self.data.append([img_path, txt_name]) print(self.data) self.img_dim = (416, 416)
补充优化说明
如果你的图片后缀存在小写jpg的情况,可以将遍历图片的规则修改为下面的写法,兼容大小写格式:
glob.glob(os.path.join(self.imgs_path, "*.[jJ][pP][gG]"))
内容的提问来源于stack exchange,提问作者Samah wa
相关产品推荐
相关产品推荐

