我尝试直接用python读取二进制文件,而不将其转换为ascii或文本格式。在
我已经从这个二进制文件中得到了ascii转换的数据,但是分析结果似乎有点可疑。在
所以,我想用这个二进制文件本身来进行分析。在
在我之前的问题中,我甚至不知道我的文件格式。所以,我试着用od-xc函数来检查它。在
我的二进制数据如下所示:
12335640 003c 0400 0060 0000 0000 fc1a 0b61 0016
< \0 \0 004 ` \0 \0 \0 \0 \0 032 ? a \v 026 \0
12335660 c000 040f c000 040f 0000 0000 0000 0000
\0 ?017 004 \0 ?017 004 \0 \0 \0 \0 \0 \0 \0 \0
12335700 01ea 0fab 07dd 0e07 1c15 07dd 0e07 1c15
?001 ?017 ? \a \a 016 025 034 ? \a \a 016 025 034
我不太熟悉二进制格式,但除了第一列之外,这种格式看起来主要是4字节。在
我试着像前面的问题一样使用binascii模块,但它似乎不起作用。在
任何想法或帮助都将不胜感激。在
我在上一个问题中使用的代码是:
^{pr2}$谢谢你
伊萨克
您可能需要使用
numpy
模块将文件读入数字阵列. 在例如:
这适用于几乎所有具有恒定记录结构的数据文件。有关
numpy.fromfile
的更复杂的示例,请参见http://docs.scipy.org/doc/numpy/reference/generated/numpy.fromfile.html。如果你的二进制文件有常量记录,你可以用一个命令将它们加载到一个易于使用的数组中,以获得更多的数学信息。在与您前面的问题一样,此数据可以表示任何东西。它可以是big-endian浮点值,也可以是小的尾数整数等等。您可以通过查找一些常见的重复值或已知值的位置对格式进行有根据的猜测,但这很容易出错。在
如果,假设,数据只是一个4字节的单精度浮点数字流,并且具有本机端性,那么可以使用^{} module 将二进制数据从类C结构解码为Python类型。在
。。。毕竟,你应该有一个浮点值的列表。在
相关问题 更多 >
编程相关推荐