我正在努力解决一些我无法解决的问题。 我正在开发一个客户端 - 服务器应用程序,在python ofc中,我需要发送一些“浮点类型”数据,但是sock.sendto需要发送“字节类型”变量。 我试过struct.pack,我试过numpy.array(这个让我发送一个完整的数组,在这种情况下似乎是最好的模块)它们都工作,我可以以“字节类型”格式发送我需要的数据。 真正的问题是服务器端,我无法将收到的数据(以字节为单位)转换为浮点数。 我试过这个: 1)演员:浮动(数据)ofc它不起作用 2)“”。加入变量,然后使用float(data)ofc投射它,这也不起作用
所以我很困惑。任何的想法?我真的需要读一个浮动服务器端。 感谢
答案 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浮动实际上是双倍的,因此应该这样打包。