欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python批量更改xml文件属性

程序员文章站 2022-03-02 14:29:01
...

改变路径

import os
import xml.dom.minidom
import xml.etree.ElementTree

xmldir = 'C:/Users/SLH/Desktop/xxx/'  # 你的xml文件的路經,注意最后一定要有'/'

for xmlfile in os.listdir(xmldir):
    xmlname = os.path.splitext(xmlfile)[0]

    # 读取 xml 文件
    dom = xml.dom.minidom.parse(os.path.join(xmldir, xmlfile))
    root = dom.documentElement

    # 获取标签对的名字,并为其赋一个新值

    root.getElementsByTagName('path')[0].firstChild.data = \
        '/home/wnzhou/darknet/scripts/VOCdevkit/VOC2007/Annotations/' + xmlname + '.jpg'


    # 修改并保存文件
    xml_specific = xmldir + xmlfile
    with open(xml_specific, 'w') as fh:
        dom.writexml(fh)

改变height

  • 或者其他的节点 把相应节点名称替换即可
import os
import os.path
import xml.dom.minidom

path = r"C:/Users/SLH/Desktop/xml"
files = os.listdir(path)  # 得到文件夹下所有r文件名称
s = []
for xmlFile in files:
    # 遍历文件夹
    portion = os.path.splitext(xmlFile)
    if not os.path.isdir(xmlFile):
        # 判断是否是文件夹,不是文件夹才打开
        # print (xmlFile)

        # xml文件读取操作

        # 将获取的xml文件名送入到dom解析
        dom = xml.dom.minidom.parse(os.path.join(path, xmlFile))
        ###最核心的部分os.path.join(path,xmlFile),路径拼接,输入的是具体路径
        root = dom.documentElement
        height = root.getElementsByTagName('height')

        for i in range(len( height )):

            nw = "240"
            if height[i].firstChild.data == "0":
                height[i].firstChild.data = nw
                print(height[i].firstChild.data)

            # 保存修改到xml文件中
        with open(os.path.join(path, xmlFile), 'w', encoding='UTF-8') as fh:
            dom.writexml(fh)
            print('修改filename OK!')