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.