用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. 微信小程序:手写日历组件

    一.前言 最近公司要做一个酒店入住的小程序,不可避免的一定会使用到日历,而小程序没有内置的日历组件.在网上看了一下也没有非常适合需求的日历,于是自己写了一个. 二.代码 1. 原理分析 写一个日历只需 ...

  2. three.js 入门详解(一)

    1. 概述 1.1 什么是WebGL? WebGL是在浏览器中实现三维效果的一套规范 想要使用WebGL原生的API来写3D效果的话,很吃力.three.js是WebGL的一个开源框架,它省去了很多麻 ...

  3. 手绘模型图带你认识Kafka服务端网络模型

    摘要:Kafka中的网络模型就是基于主从Reactor多线程进行设计的. 本文分享自华为云社区<图解Kafka服务端网络模型>,作者:石臻臻的杂货铺 . Kafka中的网络模型就是基于主从 ...

  4. pydev+eclipse写python代码

    首先,下载pydev:PyDev for Eclipse - Browse /pydev at SourceForge.net (建议下载到本地,之前看其他文章时,进行了如下安装: 启动 Eclips ...

  5. TensorFlow使用GPU训练时CPU占用率100%而GPU占用率很低

    在训练keras时,发现不使用GPU进行计算,而是采用CPU进行计算,导致计算速度很慢. 用如下代码可检测tensorflow的能使用设备情况: from tensorflow.python.clie ...

  6. java中方法重载是什么, 实际中到底有什么意义, 用处?请举例

    7.3 方法重载(overload)  当几个方法有相同的方法名,但参数个数不同或参数类型不同时,就涉及方法重载 方法重载有什么意义呢?在公司里编程,有时候一个方法名,要用到很多次,而且每次跟每次的参 ...

  7. break,return,continue的区别和作用

    学习目标: 理解break.return.continue在循环中的区别和作用 学习内容: 1.break break表示结束当前所在的循环. 循环输出到3,当i等于4后,跳出当前循环,继续向下执行循 ...

  8. Java中jdk安装与环境变量配置

    Java中jdk安装与环境变量配置 提示:下面是jdk1.7和jdk1.8的百度网盘链接 链接:https://pan.baidu.com/s/1SuHf4KlwpiG1zrf1LLAERQ 提取码: ...

  9. JavaScript操作checkbox复选框

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

  10. JavaScript脚本延迟加载的方式有哪些?

    延迟加载就是等页面加载完成之后再加载 JavaScript 文件. js 延迟加载有助于提高页面加载速度. 一般有以下几种方式: defer 属性: 给 js 脚本添加 defer 属性,这个属性会让 ...