python批量修改xml文件的path和filename

上一篇写了如何批量修改文件名,但是第一次总有像我这种终极小白绕弯路的时候,比如标注前忘记改图片名&在Windows下标注的图片拿到Linux下训练。。。于是乎废了老大力气标注完的xml可能长这样在这里插入图片描述
于是乎又一波批量改path和filename的工程开始了
经过上一篇博客已经学会了换外壳
在这里插入图片描述
接下来换内脏
首先是path

import xml.dom.minidom
import os
path='/home/boot/darknet/scripts/VOCdevkit/VOC2018/Annotations' # xml文件存放路径
sv_path='/home/boot/darknet/scripts/VOCdevkit/VOC2018/Annotations1' # 修改后的xml文件存放路径
files=os.listdir(path)
for xmlFile in files:
	dom=xml.dom.minidom.parse(os.path.join(path,xmlFile)) #打开xml文件,送到dom解析
	root=dom,documentElement #得到文档元素对象
	item=root.getElementsByTagName('path') #获取path这一node名字及相关属性值
	for i in item:
		i.firstchild.data='/home/boot/darknet/scripts/VOCdevkit/VOC2018/JPEGImages' #xml文件对应的图片路径
	with open(os.path.join(sv_path,xmlFile),'w') as fh:
		dom.writexml(fh)

接下来是filename,改完xml文件名后,只需提取xml文件名加上后缀就可以了

import xml.dom.minidom
import os
path='/home/boot/darknet/scripts/VOCdevkit/VOC2018/Annotations' # xml文件存放路径
sv_path='/home/boot/darknet/scripts/VOCdevkit/VOC2018/Annotations1' # 修改后的xml文件存放路径
files=os.listdir(path)
for xmlFile in files:
	dom=xml.dom.minidom.parse(os.path.join(path,xmlFile)) #打开xml文件,送到dom解析
	root=dom,documentElement #得到文档元素对象
	item=root.getElementsByTagName('path') #获取path这一node名字及相关属性值
	a,b=os.path.splitext(xmlFile) #分离出文件名a
	for i in item:
		i.firstchild.data=a + '.jpg'
	with open(os.path.join(sv_path,xmlFile),'w') as fh:
		dom.writexml(fh)

修改之后就得到这样啦
在这里插入图片描述
在此感谢“凌空的桨”傅大腿的不厌其烦,未来应该还会有很多出镜率哈哈哈

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页