使用python读入二进制数据

时间:2015-07-09 14:04:22

标签: python binary-data

我是Python的新手,我正在尝试读取部分包含二进制数据的文件。有一个标题包含有关数据的一些信息,之后是标题二进制数据。如果在texteditor中打开文件,它看起来像这样:

>>> Begin of header <<<
value1: 5
value2: 7
...
value65: 9
>>> End of header <<<
���ÄI›C¿���†¨¨v@���ÄW]c¿��� U⁄z@���@¬P\¿����∂:q@���@Ò˚U¿���†÷Us@���`ªw4¿��� :‘m@���@À›9@���ÄAs@���¿‹ ¿����ır@���¿@&%@���†„bq@����*˙-@��� [q@����ÚN8@����
Òo@���@√·T@���†‰zm@����9\@����ÃÜq@����€dZ@���`Ëäs@���†∏8I@���¿¬Ot@���†�6

另一个问题是我自己没有创建文件,如果那些文件是double或float数据,那么现在不要。

那么我该如何解释这些数据?

1 个答案:

答案 0 :(得分:0)

首先,感谢大家的帮助:基本上问题就是标题。当我从文件中删除标题时,我可以很好地读取数据。这可以通过

完成

x = numpy.fromfile(f,dtype = numpy.complex128,count = -1)

很容易。问题是我找不到跳过行的函数fromfile的任何选项(可以跳过字节,但标题大小可能因文件不同而不同。

在这个伟大的主题中,我发现了如何将二进制数组转换为numpy数组:

convert binary string to numpy array

有了这个,我可以通过读取数据文件行中的行来解决问题,然后将结束标题行之后的每一行合并在一个字符串中。 然后,这个字符串就像我想要的那样变成了一个很好的数组。