Décodage données binaires en Python

Page principale

Répondre à ce message
Auteur: Frédéric
Date:  
À: Guilde
Sujet: Décodage données binaires en Python
Hello,

Je cherche à décoder en Python les données d'un fichier .dat.

Dans l'en-tête du fichier, j'ai :

Data are written as SGL (32bit float). Channels are:
I_Ion, Vbias_Ion. Time is implicit.

L'en-tête dit aussi que les données commencent à l'adresse 1000 (0x3e8),
où j'ai :

000003D8   20 20 20 20  20 20 20 20  20 20 20 20  20 20 20 20  30 C9 21 47  3E 4C CC CD                  0.!G>L..
000003F0   30 C9 75 29  3E 4C CC CD  30 CD 6C 2F  3E 4C CC CD  30 D0 0B 46  3E 4C CC CD  0.u)>L..0.l/>L..0..F>L..
00000408   30 CF BF C6  3E 4C CC CD  30 CC 46 95  3E 4C CC CD  30 CB 96 6C  3E 4C CC CD  0...>L..0.F.>L..0..l>L..
00000420   30 D5 27 E5  3E 4C CC CD  30 DA 44 85  3E 4C CC CD  30 DB A4 D7  3E 4C CC CD  0.'.>L..0.D.>L..0...>L..
00000438   30 D9 F9 05  3E 4C CC CD  30 D9 6A 6A  3E 4C CC CD  30 DD 59 0C  3E 4C CC CD  0...>L..0.jj>L..0.Y.>L..
00000450   30 D9 05 C0  3E 4C CC CD  30 D7 F9 51  3E 4C CC CD  30 D7 F0 ED  3E 4C CC CD  0...>L..0..Q>L..0...>L..
00000468   30 D1 7C 5F  3E 4C CC CD  30 CD 31 77  3E 4C CC CD  30 CF 5B 1D  3E 4C CC CD  0.|_>L..0.1w>L..0.[.>L..


Vous confirmez que pour lire ces données je dois utiliser :

data = dataFile.read(8)
values = struct.unpack(">ff", data)

et que sur ces premières données, je dois bien avoir :

1.463e-09 2.000e-01
1.466e-09 2.000e-01
1.495e-09 2.000e-01
1.514e-09 2.000e-01
1.512e-09 2.000e-01
1.486e-09 2.000e-01
1.481e-09 2.000e-01
1.551e-09 2.000e-01
1.588e-09 2.000e-01
1.598e-09 2.000e-01
1.586e-09 2.000e-01
1.582e-09 2.000e-01
1.611e-09 2.000e-01
1.579e-09 2.000e-01
1.571e-09 2.000e-01
1.571e-09 2.000e-01
1.524e-09 2.000e-01
1.493e-09 2.000e-01
1.509e-09 2.000e-01

Merci de vos lumières.

-- 
    Frédéric