zoukankan      html  css  js  c++  java
  • 用python解决打标签时将xml文件的标签名打错

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

    • 问题描述:再进行达标签时将magnetic_tile的标签名错误的打成了magnetic_title,又不想一张一张的修改
    • 出现问题的xml文件
    <annotation>
    	<folder>20201102-&#26631;&#27880;-7-&#27425;&#21697;&#65288;&#26126;&#26174;)&#24109;</folder>
    	<filename>Image_20201102101311737.bmp</filename>
    	<path>D:ciwa20201102-&#26631;&#27880;-7-&#27425;&#21697;&#65288;&#26126;&#26174;)&#24109;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:ciwa20201102-标注-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:xmlerrorxml'    # 文件夹路径
    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)    # 将改好的文件重新写入
    
  • 相关阅读:
    Java继承关系的父子类中相同的成员变量
    MVC写在Model文件夹下,登录注册等页面定义的变量规则,不会被更新实体模型删除
    手动新建MVC控制器和视图,以及数据显示的问题
    创建简单的MVC项目
    复习i++和++j
    ViewBag的简单使用
    ValidationMessageFor验证
    Cookie的简单使用
    MVC3中 ViewBag、ViewData和TempData的使用和区别
    C#的GridView控件复习
  • 原文地址:https://www.cnblogs.com/zranguai/p/14141414.html
Copyright © 2011-2022 走看看