如何读取python中包含xml的二进制文件?

如何读取python中包含xml的二进制文件?,python,xml,Python,Xml,我有一个包含MRI DICOM图像轮廓的二进制文件(从cvi42软件导出),我想将其转换为XML格式 with open('myfile.cvi42ws','rb') as f: data = f.read() print(f.tell()) print(data) >> 177349 >> b'x\x9c\xec\x9d\x07`\\\xc5\xf1\xff\x9fD1-`\x08!\x84_B\x1cZH!Q\xb9 ... 当我运行deco

我有一个包含MRI DICOM图像轮廓的二进制文件(从cvi42软件导出),我想将其转换为XML格式

with open('myfile.cvi42ws','rb') as f:
    data = f.read()
    print(f.tell())
    print(data)
>> 177349
>> b'x\x9c\xec\x9d\x07`\\\xc5\xf1\xff\x9fD1-`\x08!\x84_B\x1cZH!Q\xb9 ...
当我运行decode方法时,出现以下错误:

data.decode()

UnicodeDecodeError:“utf-8”编解码器无法解码位置1中的字节0x9c:无效的开始字节

多谢各位。 以下是我从cvi42软件生产商公司得到的答案:

cvi42ws文件格式不可解码。此文件格式仅用于在不同工作站之间传输保存的cvi工作区。因此,它可以保存在一个cvi42工作站上,然后导入到另一个cvi42工作站,但内容不可解码,无法将其转换为cvi42wsx。
另一方面,cvi42wsx格式可以解码。但是,Circle不向用户提供此文件格式,因为它包含有关cvi42中使用的算法的非常敏感的信息。“

所以您调用
data.decode()
并获得错误信息?如果它的二进制数据,没有理由期望它会解码成文本。Python无法将随机二进制数据组装成unicode代码点。您需要了解该文件的格式,并希望找到该文件的解析器。您确定该文件位于
UTF-8
中吗?可能是拉丁语或其他什么。如果这真的是字节数据,那么你不应该解码它,因为你总是可以是数字,而不是字符。我从未使用过它,但它似乎是一个很好的起点。有没有理由期望此文件包含XML?如果您显示的十六进制转储是您要读取的文件的起点,这看起来不像是有效的DICOM-DICOM文件以一堆二进制零开始(当然也不是XML)。它可能是等高线坐标的二进制表示-在尝试读取它们之前,您必须检查文档并找出生成的文件类型。