python批量删除txt文件中指定行

2023-05-16

应用场景:

在深度学习项目中,常常会处理各种数据集。比如已经标注好的数据标签有三类:人形、汽车、猫,有一个新项目,只需要识别人形,那就需要把这个数据集进行处理,删除另外两类的标签。本文拿yolo格式标签为例,如下图所示,我要提取7类中的一类。
在这里插入图片描述
在这里插入图片描述


python批量处理的脚本如下

思路就是:
1、把需要的行内容拷贝下来
2、把行内容首字符(也就是类别号)修改
3、新建txt文件,把需要的类别行再复制进去

import os

txtpath = r"F:\Driving_data\output"   # 原始txt标签存放的文件夹路径
new_txtpath = r"F:\Driving_data\output_new"  #处理完后,生成的txt标签存放的文件夹路径
names_txt=os.listdir(txtpath)
#print(names_txt)
for name in names_txt:
    filepath = txtpath + "/" + name
    filepath_new = new_txtpath + "/" + name
    save_line_num = []           #定义一个列表,用于存放txt中我们不需要的类别对应的行号
    new_data = []           #用于存放我们需要的类别对应行的内容
    out_txt_path = os.path.join(filepath_new + '.txt')      #在对应输出文件夹生成新的txt文件
    #with open(filepath, "rb") as fp: 
    file = open(filepath)       #打开txt文件
    lines = file.readlines()    #读取txt文件中每一行
    #print(lines)
    n = 0
    for line in lines:
        n += 1
        if line.startswith("2") or line.startswith("1") or line.startswith("0"):     #筛选我们不需要的类  
            save_line_num.append(n-1)    #把不需要的类对应的行写入save_line_num列表

    for l in range(len(lines)):     #再遍历原始txt文件中的每一行
        if l not in save_line_num:  
            #print(lines[l])            
            list_new = lines[l].split(' ') #提取我们需要的类别 对应的内容
            temp = int(list_new[0])    #提取行首字符(也就是对应类别号)
            if temp == 3:
                list_new[0] = '0'      #把“3”修改为”0“,因为只有一个类别
            list_string = ' '.join(list_new)  
            
            print(list_string)
            new_data.append(list_string)             
    file.close()
    
    with open(filepath_new, "a+") as fn:
        fn.writelines(new_data)  #把需要的行内容写进txt
        fn.close
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python批量删除txt文件中指定行 的相关文章

  • ZYNQ7020AMP使用方法总结

    本人使用的sdk版本为2015 4本人的方法适用于15 4之后的版本 Zynq开发双核分为两种方法 xff0c 第一种双核裸跑 xff0c 第二种linux 43 裸跑 双核裸跑 xff1a 先使用Debug调试器调试 xff0c 通过SD
  • 试用了5款BI分析工具,终于找到了上手最快的那一个!

    前几天 xff0c 领导甩给我一个任务 xff0c 考察几个BI工具 xff0c 下季度立项用 潜心做ETL的我 xff0c 对BI只是略懂 之前上的BO xff0c 由于开发模式不适应 人员用不惯 xff0c 再加上负责这块的同事走的走
  • RNA-seq流程——使用hisat2进行序列比对(不利用循环&利用循环)(未完待续)

    RNA seq流程 使用hisat2进行序列比对 xff08 不利用循环 xff06 利用循环 xff09 xff08 未完待续 xff09 本次使用ky老师的文件进行序列比对 xff0c 比对时使用双端比对 xff0c 1 clean f
  • JavaWeb学习jsp中,单击验证码图片进行替换

    lt td gt 验证码 lt td gt lt td class 61 34 inputs 34 gt lt input name 61 34 checkCode 34 type 61 34 text 34 id 61 34 checkC
  • Linux的FTP安装、使用和配置(FTP客户端管理工具)

    一 FTP服务介绍 1 什么是HTP服务 FTP xff08 File Transfer Protocol xff09 是一种应用非常广泛并且古老的一个互联网文件传输协议 FTP主要用户互联网中文件的双向传输 xff08 上传 下载 xff
  • 详解警告“unreferenced local variable”

    在编译C 43 43 程序时 xff0c 我们有时候遇到这样的警告 warning C4101 39 x1 39 unreferenced local variable 下面是一个会出现上述警告的简单例子 xff1a using names
  • 为Github page绑定自定义域名并实现https访问

    欢迎参观我的网站 gt Yuci s Blog 实现目标 获取自定义域名yucichueng me 将上述域名 及www域名 解析到yucichueng github ioIP地址 将域名解析服务托管于CloudFlare 获取SSL证书
  • [NFC]NFC 客户 Support 流程

    驱动部分问题 测试程序用法再还未移植上层内容前执行测试程序后 NoACK不慎移植了上层后但还未确认底层是否移植成功需要先删除移植上层所产生的内容设备节点权限海思平台的驱动问题64位平台问题想用 NXP CLK 控制 PMIC 的 CLK安全
  • win10 文件夹背景 win10教程

    韩梦飞沙 韩亚飞 313134555 64 qq com yue31313 han meng fei sha 如何修改Windows10文件夹背景色 百度经验 Windows 10 文件夹背景 xff08 资源管理器中 xff09 如何更改
  • SpringBoot集成GuavaCache实现本地缓存「区别于redis缓存实现」

    前言 好久没有写文章了 xff0c 前段时间由于公司项目比较忙 xff0c 因此耽搁了一些时间 本篇文章也是本头条号转正后发的第一篇文章 xff0c 在此跟各位看官道歉 xff0c 同时也感谢各位看官的不离不弃 希望各位看官可以关注本头条号
  • Jackson多态反序列化的使用

    缘起 最近看Apache Druid的源代码 0 5很老的版本 xff0c 印象最深的就是对Jackson的多态反序列化和注入的使用了 xff0c 这里也属于自己的知识盲点 xff0c 看着复杂的json直接反序列化为可用对象 xff0c
  • Apache Druid源码导读--Google guice DI框架

    文章目录 缘起Google Guice介绍与Spring的对比Example覆盖已有绑定关系默认绑定 Apache Druid中Guice模块guice lifecycleguice jsonconfigguice jersey jetty
  • [gevent源码分析] 深度分析gevent运行流程

    一直对gevent运行流程比较模糊 xff0c 最近看源码略有所得 xff0c 不敢独享 xff0c 故分享之 gevent是一个高性能网络库 xff0c 底层是libevent xff0c 1 0版本之后是libev xff0c 核心是g
  • TCP服务器端和客户端程序设计

    一 实验目的 学习和掌握Linux下的TCP服务器基本原理和基本编程方法 体会TCP与UDP编程的不同 xff0c UDP编程 xff1a http blog csdn net yueguanghaidao article details
  • UDP服务器端和客户端程序设计

    实验三 UDP服务器端程序设计 一 实验目的 学习和掌握Linux下的UDP服务器基本原理和基本编程方法 xff0c 体会与TCP的区别 xff0c TCP编程 xff1a http blog csdn net yueguanghaidao
  • python实现的文本编辑器

    wxpython实现的文本编辑器 效果如下 xff1a 主要功能 xff1a 1 编辑保存文本 xff0c 打开修改文本 2 常用快捷键 xff0c 复制 xff0c 粘贴 xff0c 全选等 3 支持撤销功能 4 支持弹出式菜单 代码如下
  • C语言开发Linux下web服务器(支持GET/POST,SSL,目录显示等)

    这个主要是在CSAPP基础上做的 xff0c 添加了POST xff0c SSL xff0c 目录显示等功能 一 实现功能 xff1a 1 支持GET POST方法 2 支持SSL安全连接即HTTPS 3 支持CGI 4 基于IP地址和掩码
  • CMD命令提示符窗口基本样式属性设置

    本篇文章主要针对Win7系统的CMD命令提示窗口 xff0c Win10系统中的CMD命令提示窗口其本身可以随意拖动放大 缩小 由于默认的系统中 xff0c Win系统的CMD命令提示窗口过小 xff0c 通过设置其基本的属性 xff0c
  • sklearn2pmml xgboost缺失值(missing)处理的坑

    sklearn2pmml xgboost缺失值 missing 处理的坑 今天同事在部署xgboost pmml模型时遇到了大坑 xff0c 线上spark预测和本地python预测结果怎么都不对应 xff0c 记录一下处理过程 看了下同事
  • Js作用域与作用域链详解

    一直对Js的作用域有点迷糊 xff0c 今天偶然读到Javascript权威指南 xff0c 立马被吸引住了 xff0c 写的真不错 我看的是第六版本 xff0c 相当的厚 xff0c 大概1000多页 xff0c Js博大精深 xff0c

随机推荐