Binärdaten aus file/buffer lesen...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
polypus
User
Beiträge: 37
Registriert: Dienstag 27. September 2005, 14:11
Wohnort: Salzburg

Hallo allerseits.
Ich habe ein Problem wo ich auch nach einigen Stunden googeln nicht wirklich weiterkomme.
Aus einem File das binäre Daten enthält (64bit double precision float) würde ich gerne die Floats konvertieren.

hexdump:

Code: Alles auswählen

34 55 A0 C2 10 F4 01 41
DA 1A 2C B8 1C F9 01 41
EF 43 05 E6 24 FE 01 41
0E 24 8A 87 37 03 02 41
00 00 00 00 03 96 70 41
00 00 00 B0 0A A3 7C 41
00 00 00 80 F1 5A 79 41
00 00 00 80 00 8C 66 41
Die jeweils 4 mal 8byte sind die gesamt 8 floats die ich haben will (little endian; also rückwärts).
Wenn ich jetzt diese Datei lesen will um die floats zu kriegen, wie mache ich das am besten mit python?
BlackJack

@polypus: Schau Dir mal das `struct`-Modul aus der Standardbibliothek an.

Edit:

Code: Alles auswählen

In [17]: print source
34 55 A0 C2 10 F4 01 41
DA 1A 2C B8 1C F9 01 41
EF 43 05 E6 24 FE 01 41
0E 24 8A 87 37 03 02 41
00 00 00 00 03 96 70 41
00 00 00 B0 0A A3 7C 41
00 00 00 80 F1 5A 79 41
00 00 00 80 00 8C 66 41

In [18]: data = source.replace(' ', '').replace('\n', '').decode('hex')

In [19]: struct.unpack('<8d', data)
Out[19]: 
(147074.0950323731,
 147235.5899278734,
 147396.6123147304,
 147558.9411814515,
 17391664.0,
 30027947.0,
 26586904.0,
 11821060.0)
polypus
User
Beiträge: 37
Registriert: Dienstag 27. September 2005, 14:11
Wohnort: Salzburg

Vielen Dank!
Antworten