Python Glossary English

все Python 3structфункция

struct.unpack()

упаковка и распаковка

Распаковывает bytes по формату struct и возвращает кортеж значений.

Синтаксис

values = struct.unpack(format, buffer)

Результат — всегда кортеж, даже для одного поля: n = unpack('<I', b) даст (1,), а не 1, нужно n, = ... или [0]. Длина буфера должна точно совпадать с calcsize(format) — для чтения начала длинного буфера есть unpack_from. Порядок байт и знак выбираются форматом: те же два байта как '>h' и '<H' — совсем разные числа.

Примеры

import struct
n, = struct.unpack('<I', b'\x01\x00\x00\x00')
print(n)  # → 1
print(struct.unpack('>h', b'\xff\xfe'))  # → (-2,)
print(struct.unpack('<H', b'\xff\xfe'))  # → (65279,)
import struct
try:
    struct.unpack('<I', b'abcdef')
except struct.error as e:
    print(e)  # → unpack requires a buffer of 4 bytes

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности