все 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Сообщить о неточности