栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【修改xml标注信息类别】【删除xml标注某几个类别】

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【修改xml标注信息类别】【删除xml标注某几个类别】

使用python. xml解析树解析xml文件,批量修改xml文件里object节点下name节点的content,删除某几类内容。
代码展示:

import glob
import xml.etree.ElementTree as ET
def change_xmlfile(path):
    i = 0
    j = 0
    new_name1='car_suv'
    new_name2='car_license_plate'
    new_name3='car_wheel'
    for xml_file in glob.glob(path + '/*.xml'):
        # print(xml_file)
        tree = ET.parse(xml_file)
        obj_root=tree.getroot()
        obj_list = tree.getroot().findall('object') 
        for obj in obj_list:
            if obj.find('name').text== 'suv':
                obj.find('name').text=new_name1
                i=i+1
                #print("change %s to %s." % (yuan_name, new_name1))
            elif obj.find('name').text== 'license_plate':
                obj.find('name').text = new_name2
                i = i + 1
            elif obj.find('name').text== 'wheel':
                obj.find('name').text= new_name3
                i = i+ 1
            #删除label为'car'的标签
            elif obj.find('name').text== 'car':
                obj_root.remove(obj)
                j = j+ 1
                #print("change %s to %s." % (yuan_name, new_name1))
            #删除label为'truck'的标签
            elif obj.find('name').text== 'truck':
                obj_root.remove(obj)
                j = j+ 1
        tree.write(xml_file)    # 将改好的文件重新写入,会覆盖原文件
    print('共完成了{}处替换'.format(i))
    print('共完成了{}处删除'.format(j))
path = r'./Annotations'    # xml文件夹路径
change_xmlfile(path)
#ET.parse(file_path).getroot().remove()
#obj_root=ET.parse(file_path).getroot()

修改前:

修改后:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/688648.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号