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

新手上路,请多包涵

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

我如何从这个文件中读取并将它们正确解释为浮点数?

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

我也试过使用 bytearray 但一次只接受 1 个字节,而不是我需要的一次 4 个字节。

原文由 Razor Storm 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 561
2 个回答
struct.unpack('f', file.read(4))

您也可以一次解压多个,这样会更快:

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

原文由 Marcelo Cantos 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

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

原文由 Andrew White 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题