现在有一台计算机A要通过串口把下述列表中的数据发送到另一台计算机B。发送前,计算机A需要把数据打包成bytearray,然后再通过串口发送;计算机B收到bytearray后,需要把原始数据解包成与发送端一样的列表。请编写两个函数pack和unpack,其中,pack负责将一个列表转换成bytearray,unpack负责将bytearray转换成原始列表代码
时间: 2023-06-03 20:04:20 浏览: 232
实现串口发送数据到计算机_fairxkb_实现串口发送数据到计算机_
import struct
def pack(data):
data_bytes = b''
for item in data:
data_bytes += struct.pack('i', item)
return data_bytes
def unpack(data_bytes):
data = []
num_item = len(data_bytes) // 4
for i in range(num_item):
item = struct.unpack('i', data_bytes[i*4:(i+1)*4])[0]
data.append(item)
return data
# 示例
data = [2, 6, 9, -3]
data_bytes = pack(data)
print(data_bytes) # b'\x02\x00\x00\x00\x06\x00\x00\x00\t\x00\x00\x00\xfd\xff\xff\xff'
unpacked_data = unpack(data_bytes)
print(unpacked_data) # [2, 6, 9, -3]
阅读全文