【发布时间】:2019-02-14 07:21:32
【问题描述】:
我的最终目标是能够通过 UDP 套接字发送一组浮点数,但现在我只是想让一些东西在 python3 中工作。 下面的代码可以正常工作:
import struct
fake_data = struct.pack('f', 5.38976)
print(fake_data)
data1 = struct.unpack('f', fake_data)
print(data1)
输出:
b'\xeax\xac@'
(5.3897600173950195,)
但是当我尝试这个时,我得到:
electrode_data = [1.22, -2.33, 3.44]
for i in range(3):
data = struct.pack('!d', electrode_data[i]) # float -> bytes
print(data[i])
x = struct.unpack('!d', data[i]) # bytes -> float
print(x[i])
输出:
63
Traceback (most recent call last):
File "cbutton.py", line 18, in <module>
x = struct.unpack('!d', data[i]) # bytes -> float
TypeError: a bytes-like object is required, not 'int'
如何将浮点数组转换为字节数组,反之亦然。我尝试完成此操作的原因是因为第一个代码允许我使用 UDP 套接字将浮点数据从客户端(一个接一个)发送到服务器。我的最终目标是使用数组来执行此操作,以便我可以使用 matplotlib 绘制值。
【问题讨论】:
标签: arrays python-3.x sockets udp byte