Python用变量值解包(python2.4.3是版本)

2024-09-28 21:04:59 发布

您现在位置:Python中文网/ 问答频道 /正文

以下代码适用于一个值为2的解包。在

recvStruct = '>hhhBBhhB'
recvStructSize = (len(data) - struct.calcsize(recvStruct)) / 2
recvStruct = recvStruct + str(recvStructSize) + 'h'
recvStructSize = struct.calcsize(recvStruct)     
recvFormat = '%s%dx' % (recvStruct, len(data) - recvStructSize)
TransID , ProtoColID, PacketLength, UnitID, FC, WriteAddress, WordCount, ByteCount, datavalues[0], datavalues[1] = struct.unpack(recvFormat, data)

但我希望将n个值转换为datavalues。他们的方法不是循环吗?在一个声明中做什么? TransID,ProtoColID,PacketLength,UnitID,FC,WriteAddress,字数计数,字节数,数据值=解包结构(接收格式,数据)

这是一个嵌入式Python2.4


Tags: 数据datalenstructfcunitiddatavaluespacketlength
1条回答
网友
1楼 · 发布于 2024-09-28 21:04:59

元组解包实际上可以嵌套:

unpacked = struct.unpack(recvFormat, data)
(TransID, ProtoColID, PacketLength, UnitID, FC, WriteAddress, WordCount, ByteCount), datavalues = unpacked[:8], unpacked[8:]

相关问题 更多 >