更改xml的属性

可以根据实际情况注释掉某些内容,比如folder、database等。

import os
import os.path
import xml.dom.minidom

path="./Annotations_new"#生成新xml的路径
path_xml = r'D:\code\data\Annotations'#输入的xml路径
path_img=r'D:\code\data\JPEGImages'#输入的图片路径
files = os.listdir(path_xml)  # 得到文件夹下所有文件名称
modify_folder = "VOC2007"#更改后的名字,这里套用成了VOC2007
modify_database = "The VOC2007 Database"#更改后的名字,这里套用成了The VOC2007 Database

for xmlFile in files:  # 遍历文件夹
    if not os.path.isdir(xmlFile):  # 判断是否是文件夹,不是文件夹才打开
        print(xmlFile)
        xmlFile

    filepath = os.path.join(path_xml, xmlFile)
    # 最核心的部分,路径拼接,输入的是具体路径
    dom = xml.dom.minidom.parse(os.path.join(path_xml, xmlFile))
    root = dom.documentElement

    # 修改path
    #oldpath = root.getElementsByTagName('path_xm')
    #print(oldpath[0].firstChild.data)

    #newpath = path_img + xmlFile[0:6] + ".jpg"
    #oldpath[0].firstChild.data = newpath

    # 修改folder
    oldfolder = root.getElementsByTagName('folder')
    oldfolder[0].firstChild.data = modify_folder

    #修改database
    olddatabase = root.getElementsByTagName('database')
    olddatabase[0].firstChild.data = modify_database

    #修改 filename
    oldfilename = root.getElementsByTagName('filename')
    oldfilename[0].firstChild.data = xmlFile[0:6] + ".jpeg"

    with open(os.path.join(path, xmlFile), 'w') as fh:
        dom.writexml(fh)
    pass

更多推荐