使用python从二进制文件中读取32位带符号的ieee 754浮点数?

时间:2011-06-08 22:26:00

标签: python parsing floating-point binaryfiles ieee-754

我有一个二进制文件,这是一个简单的有符号32位ieee754浮点数列表。它们没有被任何东西分开,只是一个接一个地出现直到EOF。

我如何读取此文件并将其正确解释为浮点数?

我尝试使用read(4),但它会自动将它们转换为带有ascii编码的字符串。

我也尝试过使用bytearray但是我一次只能用1个字节而不是4个字节。

3 个答案:

答案 0 :(得分:28)

struct.unpack('f', file.read(4))

你也可以一次打开几个,这会更快:

struct.unpack('f'*n, file.read(4*n))

答案 1 :(得分:6)

看一看struct.unpack。像下面这样的东西可能会起作用......

f = struct.unpack('f', data_read)

答案 2 :(得分:3)

import struct
(num,) = struct.unpack('f', f.read(4))