如何更改voc数据集中图片的编号和.xml中的filename与path"/>
python如何更改voc数据集中图片的编号和.xml中的filename与path
由于科研的需要,需要更改voc数据集的图片编号和.xm中的一些属性,所以整理了网上的一些代码,一来方便大家,二来方便自己。如有不对的地方请多多指教。
#改变图像编号的代码块
import os
import shutil
path = "E:\VOC_insulator\Data1\VOCdevkit\VOC2007\JPEGImages/" # 目标路径filename_list = os.listdir(path) # 扫描目标路径的文件,将文件名存入列表t = 0
a = 9964 # 文件名的起始编号
for i in filename_list:used_name = path + filename_list[t]if a<10000:new_name = "E:\VOC_insulator\Data1/new/" +'00'+str(a) + '.jpg'else:new_name = "E:\VOC_insulator\Data1/new/" + '0' + str(a) + '.jpg'shutil.copy(used_name,new_name )print("文件%s重命名成功,新的文件名为%s" %(used_name,new_name))t += 1a += 1
#改变.xml编号的代码块
import os
import shutil
path = "E:\VOC_insulator\Data1\VOCdevkit\VOC2007\Annotations/" # 目标路径filename_list = os.listdir(path) # 扫描目标路径的文件,将文件名存入列表t = 0
a = 9964 # 文件名的起始编号
for i in filename_list:used_name = path + filename_list[t]if a<10000:new_name = "E:\VOC_insulator\Data1/new_Annotations/" +'00'+str(a) + '.xml'else:new_name = "E:\VOC_insulator\Data1/new_Annotations/" + '0' + str(a) + '.xml'#os.rename(used_name,new_name)shutil.copy(used_name,new_name )print("文件%s重命名成功,新的文件名为%s" %(used_name,new_name))t += 1a += 1
# 更改.xml的filename的代码块
import os
import xml.dom.minidompath='E:\VOC_insulator\Data1/new_Annotations/' # xml文件存放路径
sv_path='E:\VOC_insulator\Data1\change_xml/' # 修改后的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('filename') #获取filename这一node名字及相关属性值 # 想更改path 把filename替换成path 同时把下面的i.firstChild.data的输入替换成路径a,b=os.path.splitext(xmlFile) #分离出文件名afor i in item:i.firstChild.data = a + '.jpg'with open(os.path.join(sv_path,xmlFile),'w') as fh:dom.writexml(fh)
更多推荐
python如何更改voc数据集中图片的编号和.xml中的filename与path
发布评论