Python 修改xml文件内容——批量更改Labelimg标签文件路文件夹名
目的
对一个文件夹中全部Labelimg标记的xml文件中的文件路径以及文件夹名,使用python脚本进行批量修改。
原始文件与想要的结果对比图
原始文件截图
黄色荧光区域为需要更改的内容
修改后内容截图
修改后xml文件中floder以及path中的内容都被重置
代码实现
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(下)。