数据标注检查(一行是否有多出的数据造成无法训练)

 正常数据集存放的应该是5列数据,第一列类别,后四列为坐标值,如果在训练时候报数据集错误,可以尝试检查一下是不是每一个标注文件都是5列

 

 代码通过判断一行是否有大于4个 ‘  ’来进行判断,并输出有问题的txt名称

import os

folder_path = 'G:\CF-data\data_cfphone\labels-0'

def print_lines_with_spaces(file_path, threshold=4):
    with open(file_path, 'r', encoding='utf-8') as file:
        for line_number, line in enumerate(file, start=1):
            if line.startswith(' ' * threshold):
                print(f'{file_path}, Line {line_number}: {line.strip()}')

def process_folder(folder):
    for root, dirs, files in os.walk(folder):
        for file in files:
            if file.endswith('.txt'):
                file_path = os.path.join(root, file)
                print_lines_with_spaces(file_path)

if __name__ == "__main__":
    process_folder(folder_path)
import os

folder_path = 'G:\CF-data\data_cfphone\labels-0'

def print_lines_with_spaces(file_path, threshold=4):
    """
    打印文件中以指定个数空格开头的行信息
    :param file_path: 文件路径
    :param threshold: 空格个数的阈值,默认为4
    """
    with open(file_path, 'r', encoding='utf-8') as file:
        for line_number, line in enumerate(file, start=1):
            if line.startswith(' ' * threshold):
                print(f'{file_path}, Line {line_number}: {line.strip()}')

def process_folder(folder):
    """
    处理文件夹中的所有txt文件
    :param folder: 文件夹路径
    """
    for root, dirs, files in os.walk(folder):
        for file in files:
            if file.endswith('.txt'):
                file_path = os.path.join(root, file)
                print_lines_with_spaces(file_path)

if __name__ == "__main__":
    process_folder(folder_path)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

玩大侠

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

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

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

打赏作者

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

抵扣说明:

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

余额充值