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)

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

  • 11
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值