使用python从二进制文件中读取32位签名的ieee 754浮点数?
我有一个二进制文件,它是一个简单的带符号的 32 位 ieee754 浮点数列表。它们没有被任何东西分开,只是一个接一个地出现,直到 EOF。
我如何从该文件中读取并将它们正确解释为浮点数?
我尝试使用 read(4)
,但它会自动将它们转换为具有 ascii 编码的字符串。
我还尝试使用 bytearray
但每次只需要 1 个字节,而不是我需要的一次需要 4 个字节。
I have a binary file which is simple a list of signed 32 bit ieee754 floating point numbers. They are not separated by anything, and simply appear one after another until EOF.
How would I read from this file and interpret them correctly as floating point numbers?
I tried using read(4)
, but it automatically converts them to a string with ascii encoding.
I also tried using bytearray
but that only takes it in 1 byte at a time instead of 4 bytes at a time as I need.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您也可以一次解压多个,这样会更快:
You can also unpack several at once, which will be faster:
看一下 struct.unpack。像下面这样的东西可能会起作用......
Take a peek at struct.unpack. Something like the following might work...
到目前为止,我发现最快的方法(就性能而言)是 numpy。 fromfile
这种方法在性能方面比 struct.unpack 快得多!
The fastest approach (in terms of performance) I found so far is numpy.fromfile
This approach is much faster than
struct.unpack
in terms of performance!