深度学习常用的工具(2)批量修改xml文件中的标签属性

深度学习常用的工具(2)
批量修改xml文件中的标签属性

"""
批量修改xml文件中的标签属性
对folder,filename和path内容进行修改,并同时去除文件名中的中文汉字
"""

import re
import os
import xml.etree.ElementTree as ET


def change_xml(xml_path):
    filelist = os.listdir(xml_path)
    # 打开xml文档
    for xmlfile in filelist:
        # print(xmlfile)
        doc = ET.parse(xml_path + xmlfile)
        objects = doc.findall('object')
        root = doc.getroot()
        # 找到folder节点
        folder = root.find('folder')
        # 把folder节点内容修改为xml对应的图片的文件夹pic
        folder.text = 'pic' 
        # 找到filename节点
        filename = root.find('filename')
        filename1 = filename.text
        rstr = "[\u4e00-\u9fa5]+"
        # 把文件名中的中文汉字进行去除
        filename2 = re.sub(rstr, "", filename1)
        # 把文件名中的内容修该为对应图片的名字
        filename.text = xmlfile.split('.')[0] + ".jpg"
        # 找到path节点
        path = root.find('path')
        old_path = path.text
        print(old_path)
        # 定义path新路径
        new_path = 'D:\\all_element\\pic\\' + xmlfile.split('.')[0] + ".jpg"
        print(new_path)
        rstr = "[\u4e00-\u9fa5]+"
        # 去除图片路径中的中文汉字
        new_path = re.sub(rstr, "", new_path)
        # 修改path内容
        path.text = new_path
        doc.write(xml_path + xmlfile)  # 保存修改
        print('修改成功!')



if __name__ == '__main__':
	# 需要修改的xml路径
	xml_path = r"D:/all_element/xml/"
	# 调用change_xml函数
    change_xml(xml_path)

猜你喜欢

转载自blog.csdn.net/weixin_44996884/article/details/105891145