批量修改xml标签文件中的内容
(最近遇见一件崩溃的事情,请大家帮忙打的xml标签中的filename字段编号中,没有.jpg后缀)
这是未修改前的xml
import os
import os.path
from xml.etree.ElementTree import parse, Element
#批量修改xml中内容
def test():
# path = 'G:/laboratory/Experimentrelated/Estrus/Postures/datasets/all xml/'#xml文件所在的目录
path = 'G:/laboratory/Experimentrelated/Estrus/Postures/datasets/all xml/'#xml文件所在的目录
files = os.listdir(path) # 得到文件夹下所有文件名称
s = []
for xmlFile in files: # 遍历文件夹
if not os.path.isdir(xmlFile): # 判断是否是文件夹,不是文件夹才打开
print
xmlFile
pass
path ='G:/laboratory/Experimentrelated/Estrus/Postures/datasets/all xml/'
#print(xmlFile)
path1 = 'G:/laboratory/Experimentrelated/Estrus/Postures/datasets/all xml/'+xmlFile#定位当前处理的文件的路径
newStr = os.path.join(path, xmlFile)
houzhui = ".jpg"
dom = parse(newStr) ###最核心的部分,路径拼接,输入的是具体路径
root = dom.getroot()
#print(root)
for ann in root.iter('annotation'): # 获取object节点中的name子节点
#打印 filename中的内容,也就是c
#print(ann.find('filename').text)
c=ann.find('filename').text
print(c)
#打印拼接后的内容
# d = c + houzhui
# print("d="+d)
# ann.find('filename').text=d
# d=c+houzhui
# print (d)
# print(type(d))
# name1 = ann.find(d).text # 修改
# print(name1)
dom.write(path1, xml_declaration=True) # 保存到指定文件
pass
if __name__ == '__main__':
test()