Структура
struct.
unpack
(format, data)Распаковывает данные из структуры
# два целых 4х байтовые числа прямого порядка
unpack('>LL', b'\x00\x00\x00\x9a\x00\x00\x00\x8d')
# (154, 141)
# два целых 4х байтовые числа прямого порядка
unpack('>2L', b'\x00\x00\x00\x9a\x00\x00\x00\x8d')
# (154, 141)
# два целых 4х байтовые числа прямого порядка, пропустив 1 и 2 байта по краям
unpack('>1x2L2x', b'\x00\x00\x00\x00\x9a\x00\x00\x00\x8d\x00\x00')
# (154, 141)
struct.
pack
(format, data)Пакует данные в структуру
pack('>L', 154)
# b'\x00\x00\x00\x9a'
pack('>L', 141)
# b'\x00\x00\x00\x8d'
> - прямой порядок
< - обратный порядок
x - пропустить один байт
b - знаковый один байт
B - беззнаковый байт
h - знаковое короткое целое число, 2 байта
H - беззнаковое короткое целое число, 2 байта
i - знаковое целое число, 4 байта
I - беззнаковое целое число, 4 байта
l - знаковое длинное целое число, 4 байта
L - беззнаковое длинное целое число, 4 байта
Q - беззнаковое очень длинное целое число, 8 байт
f - число с плавающей точкой, 4 байта
d - число с плавающей точкой двойной точности, 8 байт
p - счетчик и символы, 1 + count байт
s - символы, count символов