[Python]转换问题:Float - >字节和反之亦然

时间:2016-02-05 09:18:46

标签: python sockets numpy server client

我正在努力解决一些我无法解决的问题。 我正在开发一个客户端 - 服务器应用程序,在python ofc中,我需要发送一些“浮点类型”数据,但是sock.sendto需要发送“字节类型”变量。 我试过struct.pack,我试过numpy.array(这个让我发送一个完整的数组,在这种情况下似乎是最好的模块)它们都工作,我可以以“字节类型”格式发送我需要的数据。 真正的问题是服务器端,我无法将收到的数据(以字节为单位)转换为浮点数。 我试过这个: 1)演员:浮动(数据)ofc它不起作用 2)“”。加入变量,然后使用float(data)ofc投射它,这也不起作用

所以我很困惑。任何的想法?我真的需要读一个浮动服务器端。 感谢

1 个答案:

答案 0 :(得分:1)

# sender side
data = struct.pack('!d', 3.1415)  # float -> bytes

# receiver side
x = struct.unpack('!d', data)  # bytes -> float

struct.unpack返回一组解压缩值。使用x[0],您将得到第一个(在这种情况下仅为)值,这是您想要的浮点数。

编辑:请注意,python浮动实际上是双倍的,因此应该这样打包。