图片分类的脚本

本文介绍了一个Python脚本,它读取一个txt文件中的图片文件名及其标签,然后根据标签创建并分类8个子文件夹,将图片复制到相应的文件夹中。如果图片缺失,脚本会报告缺失情况。
摘要由CSDN通过智能技术生成

当前有个名为“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}")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值