El módulo struct empaqueta valores según una cadena de formato y desempaqueta bytes en sentido inverso. Un prefijo como > fija big-endian y tamaños estándar, sin depender de la 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)

Cómo usarlo con seguridad

Define el formato en un solo lugar, comprueba calcsize y rechaza buffers con longitud inesperada. Para registros repetidos, iter_unpack evita slicing manual. No consideres válidos datos no confiables solo porque el desempaquetado terminó.

Para reforzar la base, consulta guía de collections en Python y guía de type hints.

La documentación oficial de Python, consultada el 22 de julio de 2026, describe la API, los casos límite y la compatibilidad entre versiones.