O módulo struct empacota valores conforme uma string de formato e desempacota bytes no caminho inverso. Um prefixo como > fixa big-endian e tamanhos padronizados, evitando depender da plataforma.
from struct import calcsize, pack, unpack
FORMAT = ">Ih" # network byte order: unsigned int, short
payload = pack(FORMAT, 42, -7)
identifier, delta = unpack(FORMAT, payload)
assert len(payload) == calcsize(FORMAT)
print(identifier, delta)
Como usar com segurança
Defina o formato em um único lugar, confira calcsize e rejeite buffers com tamanho inesperado. Para muitos registros, iter_unpack evita slicing manual. Nunca trate dados binários não confiáveis como válidos apenas porque o unpack foi concluído.
Para aprofundar a base, consulte guia de collections em Python e guia de type hints.
A documentação oficial do Python, consultada em 22 de julho de 2026, descreve a API, os casos-limite e a compatibilidade entre versões.