[python-users] Binärdaten in Python einlesen
M.-A. Lemburg
mal at egenix.com
So Jun 7 22:50:31 CEST 2015
On 07.06.2015 19:11, Jonas Stein wrote:
> Hallo allerseits,
>
> ich möchte Dateien mit 10 - 500 MB Binärdaten in Python einlesen und
> auswerten.
>
> Die Daten haben eine Baumartige Struktur:
>
> Headerdaten (unbekannte Länge)
> Headerseparator (Bitmuster '0x00005555AAAAFFFF')
> Datenheader (40 Byte)
> Datenblock 1a (6 Byte)
> Datenblock 1b (6 Byte)
> Datenblock 1c (6 Byte)
> Datenblockende 1 (Bitmuster '0x0000FFFF5555AAAA')
> Datenheader (40 Byte)
> Datenblock 2a (6 Byte)
> Datenblock 2b (6 Byte)
> Datenblockende 2 (Bitmuster '0x0000FFFF5555AAAA')
> Datenheader (40 Byte)
> Datenblock n (6 Byte)
> Datenblockende n (Bitmuster '0x0000FFFF5555AAAA')
> Dateiende (Bitmuster '0xFFFFAAAA55550000')
>
> Die Datenblöcke haben eine fixe Länge, aber ich weiß vorher nie
> wieviele kommen.
>
> Welcher Weg eigenet sich unter Python besonders dazu?
> Alleine zum Einlesen von Binärdaten wurde ich erschlagen von
> unzähligen fertigen und halbfertigen Lösungen und habe den Überblick
> verloren.
>
> Macht es Sinn, die Positionen aller Bitmuster ausfindig machen und mit
> numpy und dtype einzulesen, oder gibt es etwas eleganteres?
Das sieht nach einer Aufgabe für das struct Modul aus.
Du könntest allerdings auch die ganze Sache in ASN.1 definieren:
http://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One
und dann mittels
http://pyasn1.sourceforge.net/
einlesen, oder, da die Struktur doch recht einfach ist, mit
diesem hier:
http://www.getreu.net/public/downloads/software/ASN1_decoder/
Beste Grüße,
--
Marc-Andre Lemburg
eGenix.com
Professional Python Services directly from the Source (#1, Jun 07 2015)
>>> Python Projects, Coaching and Consulting ... http://www.egenix.com/
>>> mxODBC Plone/Zope Database Adapter ... http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
________________________________________________________________________
::::: Try our mxODBC.Connect Python Database Interface for free ! ::::::
eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48
D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
Registered at Amtsgericht Duesseldorf: HRB 46611
http://www.egenix.com/company/contact/
Mehr Informationen über die Mailingliste python-users