[Python-de] Zeichen in Zahlen umwandeln

Georg Mischler schorsch at schorsch.com
So Jun 22 08:11:36 UTC 2008


Andreas Jung wrote:

> "Wagner, Frank" wrote:
>
>> ich beschäftige mich seit kurzer Zeit etwas mit Python und lese nun
>> Daten seriell von einem Gerät aus. Leider ist diese Schnittstelle nicht
>> Zeichenorientier sondern es komme direkt die Messwerte im float Format
>> über die Schnittstelle. Ich erhalte somit eine Zeichenkette die wie
>> folgt aussieht: ['\xaa\xaa\x00\x10$\xbf\x00\x9c`A\xfd\xd0']
>> 
>> In C würde ich irgend sowas wie atoi versuchen anzuwenden aber in Python
>> hab ich bisher nichts gefunden und hoffe nun dass mir jemand aus der
>> Liste weiterhelfen kann?
>
> Zuerst solltest Dir mal selbst im klaren werden, was für einen Datenmüll
> hier überhaupt bekommst und in welchem Format.
>
> ['\xaa\xaa\x00\x10$\xbf\x00\x9c`A\xfd\xd0']
>
>
> sieht nicht nach etwas bekanntem aus...also lies bitte erstmal
> die Dokumentation von der Schnittstelle, die Du hier verwendest.


Er schreibt doch, das seien floats.

Falls das zutrifft, dann funktioniert folgendes:

>>> import struct
>>> struct.unpack('fff', '\xaa\xaa\x00\x10$\xbf\x00\x9c`A\xfd\xd0')
(2.5375023778432188e-29, -4.2598690830326374e-22, -33991360512.0)
>>>

Falls es in Wirklichkeit etwas anderes ist, muss er halt den
richtigen Format-String autüfteln. Das struct-Modul dürfte aber
so oder so das angemessene Werkzeug sein.


-schorsch

-- 
Georg Mischler  --  simulations developer  --  schorsch at schorsch com
+schorsch.com+  --  lighting design tools  --  http://www.schorsch.com/