python批量修改xml标记名称

1.动因与目的

写VOC的xml文件的时候,将标记名称写为了“Annotations”

想要修改为“annotation”,但是找了很多,都不好做,最后找到了大佬的这篇https://blog.csdn.net/chen1234520nnn/article/details/103050716

 

2.实现

import os

# the path need to be different.
xmldir = 'F:/Datasets/***/VOC2007/Annotations_1/'
savedir = 'F:/Datasets/***/VOC2007/Annotations/'
if not os.path.exists(savedir):
    os.makedirs(savedir)

xmllist = os.listdir(xmldir)
for xml in xmllist:
    if '.xml' in xml:
        fo = open(savedir + '/' + '{}'.format(xml), 'at')  
        print('{}'.format(xml))
        fi = open(xmldir + '/' + '{}'.format(xml), 'r')
        content = fi.readlines()
        for line in content:
            print(line)
            # line = line.replace('>', '>')  # 例:将a替换为b
            line = line.replace('<Annotation>', '<annotation>')  # 例:将a替换为b
            line = line.replace('</Annotation>', '</annotation>')  # 例:将a替换为b
            fo.write(line)
        fo.close()
        print('替换成功')

作者这个地方用的‘w’, fo = open(savedir + '/' + '{}'.format(xml), 'at') ,我改了一下。

line.replace会将对应需要替换的line替换不需要替换的就按照原样写到xml文件中。

修改前后的结果是:

发现需要修改的已修改,不须需要的仍在。

参考

 1.【脚本工具】python修改xml文件中类别的名称和删除指定的类别

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页