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.