Python无法读取损坏的XML

时间:2015-07-06 19:29:04

标签: python xml

我有一堆已损坏的XML文件。其中仍然是一些未破坏的数据。这是我正在谈论的图片:

Screenshot

我想用python迭代每个文件并获取未损坏的数据,但是当我用python打开文件时:

i2 = open(x + '/' + i, 'r')

它会打开文件,但是当我尝试阅读它时,它会回复给我说只有这个文件是从文件中读取的:

'\xa8\x9f\xb0\xdb\x17\xa1\t&}4U\xccsr\xcfN\x7fS\xa1C\xb5\xa4\xd6a\x84i'

我尝试了一些不同的编码,但它一直会出现错误:

i2 = open(x + '/' + i, 'r', encoding='utf8')
i2 = open(x + '/' + i, 'r', encoding='ANSI')

如果您知道为什么Python没有正确读取此文件,请告诉我。

1 个答案:

答案 0 :(得分:1)

您无法以文本模式阅读该文件。毫无疑问,当你尝试这样做时,python会看到一个零字节作为终结者。

尝试以二进制模式打开它,模式=' rb',并避免将内容视为文本的读取函数,如readline()。有一个stackoverflow问题已经涵盖了阅读二进制文件:

Reading a binary file with python

你必须提取"未受损害的"部分通过逐字节检查二进制值并将连续的有效字节(我假设为ASCII或UTF-8)保存到字符串中,然后打印出来或写入另一个文件。