""" 由于标注时有些错误,导致图片有几张多余的或者txt文件有几张多余的, 因此要删除多余的文件,保证每一张jpg对应一个txt文件。 """ import os images_dir = "./JPEGImages" labels_dir = "./labels" #删除多余的image, labels = [] for label in os.listdir(labels_dir): #labels.append(label.split('.')[0])#不能用这一行,因为有些文件名字前面就有 . 这样得到的文件名字是不对的。 labels.append(os.path.splitext(label)[0]) #print(labels) for image_name in os.listdir(images_dir): #image_name = image_name.split('.')[0] #不能用这一行,因为有些文件名字前面就有 . image_name = os.path.splitext(image_name)[0] #print(image_name) if image_name not in labels: image_name = image_name + ".jpg" print(image_name) #os.remove(os.path.join(images_dir, image_name))#删除图片,最开始先把这一行注释掉,运行下看看打印,以免误删导致数据还是重新做, #删除多余的label images = [] for image in os.listdir(images_dir): #images.append(image.split('.')[0])#不能用这一行,因为有些文件名字前面就有 . images.append(os.path.splitext(image)[0] ) for label_name in os.listdir(labels_dir): #label_name = label_name.split('.')[0]#不能用这一行,因为有些文件名字前面就有 . label_name = os.path.splitext(label_name)[0] if label_name not in images: label_name = label_name + ".txt" print(label_name) #os.remove(os.path.join(labels_dir, label_name))#删除label,最开始先把这一行注释掉,运行下看看打印,以免误删导致数据还是重新做,