struct

Структура

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 символов