用python解决打标签时将xml文件的标签名打错

  • 问题描述:再进行达标签时将magnetic_tile的标签名错误的打成了magnetic_title,又不想一张一张的修改
  • 出现问题的xml文件
<annotation>
<folder>20201102-标注-7-次品(明显)席</folder>
<filename>Image_20201102101311737.bmp</filename>
<path>D:\ciwa\20201102-标注-7-次品(明显)席\Image_20201102101311737.bmp</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>1672</width>
<height>988</height>
<depth>1</depth>
</size>
<segmented>0</segmented>
<object>
<name>magnetic_title</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>315</xmin>
<ymin>344</ymin>
<xmax>1363</xmax>
<ymax>816</ymax>
</bndbox>
</object>
</annotation>
  • 正常的xml
<annotation>
<folder>20201102-标注-7-次品(明显)席</folder>
<filename>Image_20201102100413575.bmp</filename>
<path>D:\ciwa\20201102-标注-7-次品(明显)席\Image_20201102100413575.bmp</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>1672</width>
<height>988</height>
<depth>1</depth>
</size>
<segmented>0</segmented>
<object>
<name>magnetic_tile</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>327</xmin>
<ymin>351</ymin>
<xmax>1380</xmax>
<ymax>826</ymax>
</bndbox>
</object>
</annotation>
  • 解决方法:
"""
通过解析xml文件,批量修改xml文件里的标签名称,改变xml文件的标签
"""
import os.path
import glob
import xml.etree.ElementTree as ET
path = r'E:\xml\errorxml' # 文件夹路径
for xml_file in glob.glob(path + '/*.xml'):
####### 返回解析树
# print(xml_file)
tree = ET.parse(xml_file)
root = tree.getroot()
# print(root.findall('object')[0].find('name').text) # 打印测试是否是自己要的标签名
if root.findall('object')[0].find('name').text == 'magnetic_title': # 判断是不是错误的标签
root.findall('object')[0].find('name').text = 'magnetic_tile' # 将错误的标签进行修改
print(root.findall('object')[0].find('name').text) # 打印测试
tree.write(xml_file) # 将改好的文件重新写入

用python解决打标签时将xml文件的标签名打错的更多相关文章

  1. springboot项目的maven的pom.xml文件第一行报错 Unknown Error

    springboot项目的maven的pom.xml文件第一行报错 Unknown Error https://blog.csdn.net/mini_jike/article/details/9239 ...

  2. 在tomcat启动时解析xml文件,获取特定标签的属性值,并将属性值设置到静态变量里

    这里以解析hibernate.cfg.xml数据库配置信息为例,运用dom4j的解析方式来解析xml文件. 1.在javaWeb工程里新建一个java类,命名为GetXmlValue.java,为xm ...

  3. 解决Android工程里的xml文件自动提示问题

    昨天晚上看某培训机构的Android的 视频教程,看到他在写布局的XML文件时,有很方便的自动提示功能.我就在自己的Eclipse里试了一下,可是我的没实现.就到网上查,很多都说:在 Window-& ...

  4. (python功能定制)复杂的xml文件对比,产生HTML展示区别

    功能的设计初衷: 处理复杂的xml对比,屏蔽同节点先后顺序的影响 主要涉及知识点: 1.xml解析 ------- ElementTree库 2.文件比对差别 ------- difflib库 3.获 ...

  5. Python中使用dom模块生成XML文件示例

    在Python中解析XML文件也有Dom和Sax两种方式,这里先介绍如何是使用Dom解析XML,这一篇文章是Dom生成XML文件,下一篇文章再继续介绍Dom解析XML文件. 在生成XML文件中,我们主 ...

  6. 解决创建带有NameSpace的XML文件出现空白xmlns的问题

    为了能够让用户自行部署ClickOnce应用程序,需要编写一个生成ClickOnce应用程序的ClickOnce专用安装程序setup.exe,而生成这个setup.exe的方法就是编写一个XML格式 ...

  7. maven 结合mybaits整合框架,打包时mapper.xml文件,mapper目录打不进war包去问题

    首先,来看下MAVENx项目标准的目录结构: 一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,ma ...

  8. 解决Maven项目中pom.xml文件报错(Failure to transfer....)的问题

    打开pom.xml文件,查看错误,如果错误类型为:Failure to transfer.........之类的,则表明你的pom中依赖的jar包没有完全下载. 解决方法:找到你本地的maven仓库, ...

  9. eclipse 中忽略jsp, xml文件中的报错信息

    有的时候, 在eclipse中, jsp, xml 文件时运行的好好的, 可是就是在eclipse中报错, 虽然不影响功能, 但看起来很烦, 去掉这些错误警告的方法是: Windows-Prefere ...

随机推荐

  1. 将百度地图Demo抽取出来安到自己的程序中

    今日所学: 使用百度地图ADK实现手机定位 [Android]使用百度.高德.腾讯地图SDK获取定位数据与屏幕截图分享到QQ_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili 代码获取SHA1 (2 ...

  2. CSS简单样式练习(四)

    运行效果: 源代码: 1 <!DOCTYPE html> 2 <html lang="zh"> 3 <head> 4 <meta char ...

  3. 小程序拿checkbox的checked属性

     方法一.checkbox <checkbox class="round red" bindtap="checkboxChange" checked=&q ...

  4. 微信小程序如何把接口调用成功的回调函数返回的参数return出去?(promise就可以解决)

    举个栗子//获取应用实例 //const app = getApp() //const util = require('../../utils/util.js') //const sign = uti ...

  5. 搭建 LNMP 环境

    搭建 LNMP 环境 搭建 Nginx 静态服务器 安装 Nginx 使用 yum 安装 Nginx: yum install nginx -y 修改 /etc/nginx/conf.d/defaul ...

  6. Django项目引入NPM和gulp管理前端资源

    前言 之前写了一篇<Asp-Net-Core开发笔记:使用NPM和gulp管理前端静态文件>,现在又来用Django开发项目了,之前我搞了一个Django的快速开发脚手架「DjangoSt ...

  7. [翻译] Cassandra 分布式结构化存储系统

    Cassandra 分布式结构化存储系统 摘要 Cassandra 是一个分布式存储系统,用于管理分布在许多商品服务器上的大量结构化数据,同时提供无单点故障(no single point of fa ...

  8. [转载] Golang交叉编译(跨平台编译)简述

    一.何为交叉编译 简单地说,就是在一个平台上生成另一个平台上的可执行代码.同一个体系结构可以运行不同的操作系统:同样,同一个操作系统也可以在不同的体系结构上运行. 二.交叉编译前的准备 本文只介绍Wi ...

  9. HCIE笔记-第二节-数据封装+传输介质

    数据传输的形式 1.电路交换 在通信之前,维护一条逻辑意义上的链路,这条链路仅仅可以传递两者的数据 2.报文交换 在数据之外,加上能够标识接收者.发送者的信息 3.分组交换(最主流) 依然进行报文交换 ...

  10. node.js -- 身份认证

    请问昨天结束的早是对堆积在了今天吗,今天还来加个班更博,看在这个毅力的份上能否给亿点点推荐. 有个好消息有个坏消息,先说坏消息吧,就是在这么学下去我急需急支糖浆,来回顾回顾前面的知识,这几天学的太急了 ...