Python 修改xml文件内容——批量更改Labelimg标签.xml文件路文件夹名

Python 修改xml文件内容——批量更改Labelimg标签文件路文件夹名

  • 目的
    • 原始文件与想要的结果对比图
    • 代码实现
    • xml.etree.ElementTree

目的

对一个文件夹中全部Labelimg标记的xml文件中的文件路径以及文件夹名,使用python脚本进行批量修改。

原始文件与想要的结果对比图

原始文件截图
黄色荧光区域为需要更改的内容
Python 修改xml文件内容——批量更改Labelimg标签.xml文件路文件夹名_第1张图片
修改后内容截图
修改后xml文件中floder以及path中的内容都被重置
Python 修改xml文件内容——批量更改Labelimg标签.xml文件路文件夹名_第2张图片

代码实现

import xml.etree.ElementTree as ET
import os
path="F:\\VOC2018\\Annotations\\" # xml文件存放路径
sv_path="F:\\VOC2018\\Annotations1\\" # 修改后的xml文件存放路径
imgpath="F:\\VOC2018\\ImageSets\\"#新的path路径
files=os.listdir(path) #读取路径下所有文件名
for xmlFile in files: 
    if xmlFile.endswith('.xml'):
        tree=ET.ElementTree(file = path+xmlFile) #打开xml文件,送到tree解析
        root=tree.getroot() #得到文档元素对象
       
        root[0].text='ImageSets'
        #root[0].text是annotation下第一个子节点中内容,直接赋值替换文本内容
        root[2].text=imgpath+xmlFile
    	#替换后的内容保存在内存中需要将其写出
        tree.write(sv_path+xmlFile)        

xml.etree.ElementTree

关于xml.etree.ElementTree库简单使用,可以参考Python 标准库之 XML(上)以及Python 标准库之 XML(下)。

你可能感兴趣的:(python学习)