Array von Structs aus einem Binary File lesen

10/03/2011 - 22:21 von sebastian | Report spam
Hallo,

Gibt es eine schnelle/einfache Möglichkeit binary files zu lesen
welche einen Stack von Structs enthalten.

in IDL würde das zB so aussehen:

; Write binary
x={id_int:1,id_float:1.0}
x=replicate(x,10)

openw, lun, 'testdata.dat', /GET_LUN
writeu, lun, x
free_lun, lun


; Read binary
z={id_int:0,id_float:0.0}
z=replicate(z,10)

openr, lun, 'testdata.dat', /GET_LUN
readu, lun, z
free_lun, lun


Kann man mit Python ebenfalls einen Block von mehreren Structs
definieren in welche die Daten dann übertragen werden? Ich bin bisher
nur so weit gekommen:

f=open('testdata.dat', 'rb')
rawdata = f.read()
print rawdata
y=struct.unpack('< hf hf hf hf hf hf hf hf hf hf',rawdata)
print y

Allerdings ist es unschön eine abgezàhlte Anzahl von "hf" zu verwenden
und eine Schleife wàre wohl auch sehr unpraktisch...

Viele Grüße,
Sebastian
 

Lesen sie die antworten

#1 Peter Otten
11/03/2011 - 12:06 | Warnen spam
sebastian wrote:

Kann man mit Python ebenfalls einen Block von mehreren Structs
definieren in welche die Daten dann übertragen werden? Ich bin bisher
nur so weit gekommen:

f=open('testdata.dat', 'rb')
rawdata = f.read()
print rawdata
y=struct.unpack('< hf hf hf hf hf hf hf hf hf hf',rawdata)
print y

Allerdings ist es unschön eine abgezàhlte Anzahl von "hf" zu verwenden
und eine Schleife wàre wohl auch sehr unpraktisch...



struct.unpack("<" + "hf"*10, rawdata)

wàre immerhin eine leichte Verbesserung.

Ähnliche fragen