Datenaustausch zwischen C und Python 3

Heute möchte ich ein kleines Python-3-Skript vorstellen, welches den Austausch von Binärdaten zwischen Python 3- und C-Code vereinfacht. Da ich Python als Mittel der Wahl für die Konvertierung von Datenformaten ansehe, mit diesen Daten — vorallem bei größeren Datensätzen — jedoch in der Regel in C arbeite, lohnt es sich, den Datenaustausch zumindest ein Stück weit zu automatisieren.

Der Grundgedanke ist der: Man beschreibt die Datenstrukturen, die man kommunizieren möchte, in einem einfachen Textformat und lässt dann entsprechende Routinen zum Speichern und zum Laden im Binärformat in beiden Sprachen von einem Skript erzeugen. Die Datenstrukturen werden in C als structs und in Python als  dictionaries dargestellt. Zusätzlich werden einige nützliche Funktionen zum vereinfachten Speichermanagement und zum Vergleich von Datenobjekten in C bereitgestellt, während in Python eine Funktion definiert wird, welche die Elemente des dictionaries in den korrekten Datentyp wandelt.

Das Skript kann entweder direkt hier oder von meinem github.com repository — inkl. Beispiel — bezogen werden.

Kurzanleitung

Entweder,
       wget https://immanuel-albrecht.de/datastructures.py
oder
       git clone https://github.com/Immanuel-Albrecht/datastructures.py.git

Dann
       python3 datastructures.py --help