在Python中将字节转换为浮点数

时间:2008-08-07 22:24:28

标签: python floating-point

我有一个二进制文件,我必须解析,我正在使用Python。有没有办法获取4个字节并将其转换为单个精度浮点数?

3 个答案:

答案 0 :(得分:71)

>>> import struct
>>> struct.pack('f', 3.141592654)
b'\xdb\x0fI@'
>>> struct.unpack('f', b'\xdb\x0fI@')
(3.1415927410125732,)
>>> struct.pack('4f', 1.0, 2.0, 3.0, 4.0)
'\x00\x00\x80?\x00\x00\x00@\x00\x00@@\x00\x00\x80@'

答案 1 :(得分:13)

你需要struct包。

答案 2 :(得分:1)

只需添加一点,如果您想将浮点数作为unpack方法的输出而不是元组,只需编写

>>> [x] = struct.unpack('f', b'\xdb\x0fI@')
>>> x
3.1415927410125732

如果您有更多的浮点数,那就写

>>> [x,y] = struct.unpack('ff', b'\xdb\x0fI@\x0b\x01I4')
>>> x
3.1415927410125732
>>> y
1.8719963179592014e-07
>>>