python报错xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 3, column 50

在使用Python的xml.etree.ElementTree解析XML文件时遇到'not well-formed (invalid token)'错误,主要是由于XML文件中存在非法字符。针对大量文件无法手动修改的问题,通过循环读取和修改文件内容,成功解决了23000多个XML文件中14000个含有非法字符的问题。解决方案是找到并替换非法字符,特别是在filename字段的第三行。注意实施此方法前需创建文件副本,因操作会覆盖原有内容。
摘要由CSDN通过智能技术生成

在我需要解析xml文件统计类别数量的时候,出现了这个error;

错误很简单,就是xml里面有非法字符(有的说是编码问题),下面是我的answer:

有病就治,从根上来说把非法字符改掉就好了。但是

我有23000多xml文件,有问题的有14000张,我肯定不能人工去改。但是循环的话,我解析不了它啊!陷入了死循环。

于是,我试了好多打开xml文件的方法,最后找到了一种去修改的方法:

'''用的时候要慎重,会先删除文件'''
import os
input_dir='/home/xys/CloundShiProjects/traffic_light/trafficlight_dect/data/xml/'

filenames = os.listdir(input_dir)
for filename in filenames:
    path = input_dir+filename
    file_front = filename[:-4]
    with open(path, mode='r', errors='ignore') as f:
        lines = f.readlines()
        f.close()
    lines[2]='   <filename>'+file_front+'</filename&
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言初-xys

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值