使用Python批量修改含中文字符的xml文件

本人最近在搞FasterRCNN的项目,无奈在labelimg的时候无意中加入了中文路径,导致读xml的时候会报错,于是乎参照别的博客写了一个批量修改的脚本


#!/usr/bin/python


import os

import os.path

import xml.dom.minidom as xdm

#以下均是处理中文时所需库

import sys

reload(sys)

sys.setdefaultencoding('utf8')

path = './test/'

#以下是按照数字顺序排列文件从xml开始数倒数4位

items = os.listdir(path)
items.sort(key=lambda x:int(x[:-4]))

train_txt = 'train.txt'

print items

for item in items:
    dom = xdm.parse(os.path.join(path,item))
    root = dom.documentElement

    # change folder name
    folder_dom = root.getElementsByTagName('folder')
    print folder_dom[0].firstChild.data
    folder_dom[0].firstChild.data = 'VOC2007'

    # change image name

    image_dom = root.getElementsByTagName('filename')
    print image_dom[0].firstChild.data

    with open(train_txt, 'a+') as f:
        f.write(image_dom[0].firstChild.data)
        f.write('\n')

    image_dom[0].firstChild.data = image_dom[0].firstChild.data + '.jpg'
    
    # delete path
    
    path_dom = root.getElementsByTagName('path')
    root.removeChild(path_dom[0])

    with open(os.path.join(path,item), 'w') as f:
        dom.writexml(f, encoding='utf-8')
    

参照博客  https://saicoco.github.io/object-detection-4/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值