计算机视觉领域是当下比教热门的一个研究领域,包括目标检测,实例分割,语义分割等,不可避免会涉及到xml文件的修改,如果一两个文件的话,修改起来还算简答,但是实际情况中,远不止一个文件,且一个文件中也会包含多组属性。所以直接上代码,我习惯用pycharm编辑器来实现。
import xml.dom.minidom
for i in range(0, 100, 5):
path1 = "xxx" + str(i) + ".xml"
path2 = "xxx" + str(i+1) + ".xml"
path3 = "xxx" + str(i+2) + ".xml"
path4 = "xxx" + str(i+3) + ".xml"
path5 = "xxx" + str(i+4) + ".xml"path6 = "aaa" + str(i) + ".xml"
dom1 = xml.dom.minidom.parse(path1) #加载xml文件
root1 = dom1.documentElement # 获取到根节点
names1 = root1.getElementsByTagName("name") #获取名字为name的根节点属性下面的值
a1 = names1[0].firstChild.data # 将第一组name属性的值赋值给a1dom2 = xml.dom.minidom.parse(path2)
root2 = dom2.documentElement # 获取到根节点
names2 = root2.getElementsByTagName("name")
a2 = names2[0].firstChild.data # 将第二组name属性的值赋值给a1dom3 = xml.dom.minidom.parse(path3)
root3 = dom3.documentElement # 获取到根节点
names3 = root3.getElementsByTagName("name")
a3 = names3[0].firstChild.datadom4 = xml.dom.minidom.parse(path4)
root4 = dom4.documentElement # 获取到根节点
names4 = root4.getElementsByTagName("name")
a4 = names4[0].firstChild.datadom5 = xml.dom.minidom.parse(path5)
root5 = dom5.documentElement # 获取到根节点
names5 = root5.getElementsByTagName("name")
a5 = names5[0].firstChild.datadom6 = xml.dom.minidom.parse(path6)
root6 = dom6.documentElement # 获取到根节点
names6 = root6.getElementsByTagName("name")names6[0].firstChild.data = a1
names6[1].firstChild.data = a2
names6[2].firstChild.data = a3
names6[3].firstChild.data = a4
names6[4].firstChild.data = a5with open(path1, 'w', encoding='utf-8') as f: #打开对应的xml文件
dom1.writexml(f, addindent=' ', encoding='utf-8') #将修改后的数据写入对应的xml文件
with open(path2, 'w', encoding='utf-8') as f:
dom2.writexml(f, addindent=' ', encoding='utf-8')
with open(path3, 'w', encoding='utf-8') as f:
dom3.writexml(f, addindent=' ', encoding='utf-8')
with open(path4, 'w', encoding='utf-8') as f:
dom4.writexml(f, addindent=' ', encoding='utf-8')
with open(path5, 'w', encoding='utf-8') as f:
dom5.writexml(f, addindent=' ', encoding='utf-8')
with open(path6, 'w', encoding='utf-8') as f:
dom6.writexml(f, addindent=' ', encoding='utf-8')
以上代码实现的功能就是,从绝对路径为xxx的文件夹中每次读取5个xml文件中的name属性,取出来,五个name属性值全部赋值给绝对路径为aaa中的第一个0.xml文件,直到最后一个文件99.xml的属性值全部修改完为止。