解包字节编码消息的推荐 "pythonic way" 是多少?
What's the recommended "pythonic way" for unpacking a byte encoded message?
假设我有一个具有以下架构的字节打包消息:
Message Name: Ball
Field #1:
Name: Color
Type: unsigned int
Start Bit: 0
Bit Length: 4
Field #2:
Name: Radius
Type: single
Start Bit: 4
Bit Length: 32
Field #3:
Name: New
Type: bool
Start Bit: 36
Bit Length: 1
将字节序列转换为 python 变量的推荐 pythonic 方法是什么? "struct" 模块能否很好地解包具有任意位长度字段的字节数组?
What is the recommended pythonic way to convert the byte sequence into a python variables?
这个问题很快就会结束。你想要的是阅读 this python doc page about struct
and bytearray
s.
它将向您展示如何使用格式 pack
和 unpack
数据。
Would the "struct" module work well for unpacking byte arrays that have arbitrary bit length fields?
它将向您展示如何使用格式 pack
和 unpack
数据。
对,如下:
import struct
color, radius, new = struct.unpack("If?", incoming_bytes)
检查 format characters 定义格式字符串,您就完成了。
您可以使用更多臃肿的库,例如 construct
,但是说实话,这种格式非常简单,如果您早 unpack
晚 pack
,您可以自由组织您的代码中的数据。
例如:
class Ball:
def __init__(self, color, radius, new):
self.color = color
self.radius = radius
self.new = new
Ball(*unpack("If?", incoming_bytes))
假设我有一个具有以下架构的字节打包消息:
Message Name: Ball
Field #1:
Name: Color
Type: unsigned int
Start Bit: 0
Bit Length: 4
Field #2:
Name: Radius
Type: single
Start Bit: 4
Bit Length: 32
Field #3:
Name: New
Type: bool
Start Bit: 36
Bit Length: 1
将字节序列转换为 python 变量的推荐 pythonic 方法是什么? "struct" 模块能否很好地解包具有任意位长度字段的字节数组?
What is the recommended pythonic way to convert the byte sequence into a python variables?
这个问题很快就会结束。你想要的是阅读 this python doc page about struct
and bytearray
s.
它将向您展示如何使用格式 pack
和 unpack
数据。
Would the "struct" module work well for unpacking byte arrays that have arbitrary bit length fields?
它将向您展示如何使用格式 pack
和 unpack
数据。
对,如下:
import struct
color, radius, new = struct.unpack("If?", incoming_bytes)
检查 format characters 定义格式字符串,您就完成了。
您可以使用更多臃肿的库,例如 construct
,但是说实话,这种格式非常简单,如果您早 unpack
晚 pack
,您可以自由组织您的代码中的数据。
例如:
class Ball:
def __init__(self, color, radius, new):
self.color = color
self.radius = radius
self.new = new
Ball(*unpack("If?", incoming_bytes))