objectif
Itérer sur des enregistrements binaires sans tout charger.
code minimal
import struct
data = struct.pack("<Ih", 123, -5) + struct.pack("<Ih", 7, 2)
recs = list(struct.iter_unpack("<Ih", data))
print(recs[0][0] == 123 and recs[1][1] == 2) # attendu: True
utilisation
import struct, io
buf = io.BytesIO(struct.pack(">H", 0x1234) * 3)
vals = [x[0] for x in struct.iter_unpack(">H", buf.getvalue())]
print(vals == [0x1234, 0x1234, 0x1234])
variante(s) utile(s)
import struct
print(struct.calcsize("<Ih") > 0)
notes
- iter_unpack lit paresseusement des tuples selon le format.
- Assurez-vous que la taille du buffer est un multiple du format.