我有一个二进制文件,这是一个简单的有符号32位ieee754浮点数列表。它们没有被任何东西分开,只是一个接一个地出现直到EOF。
我如何读取此文件并将其正确解释为浮点数?
我尝试使用read(4)
,但它会自动将它们转换为带有ascii编码的字符串。
我也尝试过使用bytearray
但是我一次只能用1个字节而不是4个字节。
答案 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))