所以我有一个 9000 行的 xml 数据库,保存为 txt,我想在 python 中加载它,所以我可以做一些格式化并删除不需要的标签(我只需要一些标签,但是有很多不必要的信息)以使其可读。但是,我得到一个 UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 608814: character maps to <undefined>
,我认为这意味着程序遇到了非 Unicode 字符。我很确定这些字符对程序并不重要(我要查找的数据都是纯文本,没有特殊符号),所以当我无法读取时,如何从 txt 文件中删除所有这些字符没有得到 UnicodeDecodeError
的文件?
最佳答案
一个粗略的解决方法是自己解码文件中的字节并指定错误处理。例如:
for line in somefile:
uline = line.decode('ascii', errors='ignore')
这会将行变成一个 Unicode 对象,其中任何非 ascii 字节都已被删除。这不是通常推荐的方法 - 理想情况下,您希望使用适当的解析器处理 XML,或者至少知道您的文件的编码并适本地打开它(具体细节取决于您的 Python 版本)。但是,如果您完全确定自己只关心 ascii 字符,那么这是一个简单的回退。
关于python - 使用 Python 从 xml 数据库中删除非 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29503356/