当前有个名为“image”的文件夹和名为“label”的txt文件,txt文件里的每一行包含了“photos”文件夹里每一个图片文件的文件名 + 一个空格 + 对应的标签(1、2....8),请编写一个脚本,并创建一个新的文件夹,里面包含8个文件夹(即每个图片对应的标签),然后将对应标签的图片复制粘贴到对应的文件夹下
import os
import shutil# Source and target folder details
source_folder = "./image" # 假设图片存储在这个文件夹
label_file = "./label.txt" # 标签文件的路径
target_folder = "./hospital_gradingData_afterSupplement_newName" # 分类后的图片存储位置# 如果目标文件夹不存在,则创建
if not os.path.exists(target_folder):os.mkdir(target_folder)# 为每个标签创建子文件夹
for i in range(1, 9):label_subfolder = os.path.join(target_folder, str(i))if not os.path.exists(label_subfolder):os.mkdir(label_subfolder)# 读取标签文件并对图片进行分类
with open(label_file, 'r', encoding='utf-8') as file: # 指定编码为 'utf-8'for line in file:parts = line.strip().split()photo_name = ' '.join(parts[:-1]) # 文件名可能包含空格,因此合并除了最后一个部分之外的所有部分label = parts[-1] # 标签是最后一个部分source_photo_path = os.path.join(source_folder, photo_name)target_photo_path = os.path.join(target_folder, label, photo_name)# 检查图片是否已经存在于目标文件夹中if not os.path.exists(target_photo_path):if os.path.exists(source_photo_path):# 将图片复制到相应标签的文件夹中shutil.copy2(source_photo_path, target_photo_path)else:# 打印缺失的图片信息print(f"缺失图片:{photo_name},应存放于文件夹:{label}")