python批量修改xml文件

计算机视觉领域是当下比教热门的一个研究领域,包括目标检测,实例分割,语义分割等,不可避免会涉及到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属性的值赋值给a1

     dom2 = xml.dom.minidom.parse(path2)
     root2 = dom2.documentElement  # 获取到根节点
    names2 = root2.getElementsByTagName("name")
    a2 = names2[0].firstChild.data  # 将第二组name属性的值赋值给a1

    dom3 = xml.dom.minidom.parse(path3)
    root3 = dom3.documentElement  # 获取到根节点
    names3 = root3.getElementsByTagName("name")
    a3 = names3[0].firstChild.data

    dom4 = xml.dom.minidom.parse(path4)
    root4 = dom4.documentElement  # 获取到根节点
    names4 = root4.getElementsByTagName("name")
    a4 = names4[0].firstChild.data

    dom5 = xml.dom.minidom.parse(path5)
    root5 = dom5.documentElement  # 获取到根节点
    names5 = root5.getElementsByTagName("name")
    a5 = names5[0].firstChild.data

   dom6 = 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 = a5

   with 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的属性值全部修改完为止。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值