YOLO的txt数据筛选:如何挑选出包含固定类别的标签文件和图片

一共分两步:
第一步:在yolo所有的txt标签文件中挑出只包含固定类别的txt标签文件;
第二步:根据标签文件,筛选图片

第一步:

import os.path
import shutil

# 遍历指定目录
def eachFile(filepath):
    # os.listdir: 该函数返回指定的文件夹包含的文件
    pathdir = os.listdir(filepath)
    for alldir in pathdir:
        child = os.path.join(filepath,alldir)
        if os.path.isfile(child):
            readfile(child)
            continue
        eachFile(child)

# 遍历出结果,返回文件的名字
def readfile(filename):
    f = open(filename, 'r')
    line = f.readline() # 以行的形式进行读取文件
    list1 = []
    while line:
        # line.split(‘\t''\n'):'\t'和'\n'是两个字符串,会自动进行拼接,形成'\t\n'作为分隔符。
        # 默认把所有的空格、制表符、回车符当作分隔符,并过滤掉空串。
        a = line.split()
        str = a[0]  # 读取改行的第一个数据(类别)
        if str == '0' or '1':
            list.append(filename)
            shutil.copy(filename, 'E:\multyfs2single\label0')  # 要保存的路径
            print("匹配到:" + filename)
        line = f.readline()
    f.close()

if __name__ == "__main__":
    filename = 'E:\multyfs2single\label'
    arr = []
    eachFile(filename)

第二步:

import os
import shutil

txt_dir = "E:/multyfs2single/label0/"
image_dir = "E:/multyfs2single/img0/"
origin_img_dir = "E:/multyfs2single/img/"

for file in os.listdir(txt_dir):
    # splitext()是用于从后往前切割文件名,[0]:文件名;[1]:后缀
    shutil.copy(origin_img_dir + '/' + os.path.splitext(file)[0] + '.png',
                image_dir + '/' + os.path.splitext(file)[0] + '.png')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ghx3110

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值