深度学习常用的工具(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)