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