Seite 1 von 1

cpp Dateien auslesen und Variablen mit python nutzen

Verfasst: Donnerstag 2. April 2009, 08:50
von blub
Hallo!
Wir haben hier ein größeres C++ Programm, welches eine Konfigurationsdatei besitzt in ./src/parameters.cpp. Diese wird vor jedem Programmstart modifiziert.
Dort steht unter anderem drin:

const char Run_Name[RUN_NAME_SIZE] = "RUN-XYZ";

Für mein Programm, ein Python Programm, würde ich nun gerne diese Datei auslesen und das RUN-XYZ finden. Bis jetzt muss ich immer das extra RUN-XYZ angeben muss, was einwenig umständlich ist.

Gibt es eine Möglichkeit mit Python diese Datei auszulesen und das Python den String RUN-XYZ weiter benutzen kann?

Vielen Dank für Tips
blub

Verfasst: Donnerstag 2. April 2009, 09:09
von CM
Hoi und willkommen im Forum,

C++ kannst Du mit pygccxml parsen, sofern Du gcc benutzen kannst. gcc mußt Du nicht zum kompilieren verwenden, aber der Parser verlangt nach gcc - es besteht also eine Abhängigkeit.

Ggf, kannst Du auch swig nehmen: Das erstellt u. a. einen Python-Wrapper für Dein cpp-File (siehe swig-Docs) und dieses File kannst Du in Python einlesen - und natürlich auch auf sämtliche dort globalen Parameter zugreifen.

HTH
Christian

Verfasst: Donnerstag 2. April 2009, 10:17
von helduel
Moin,

oder du parst die Datei einfach mit einer Regex (ungetestet):

Code: Alles auswählen

import re
run_name = re.search('const char Run_Name\[RUN_NAME_SIZE] = "(.*?)";')
with open("parameters.cpp") as cfg:
    result = run_name.search(cfg.read())
    name = result.group(1)
Ich gehe davon aus, dass die Datei nicht allzu groß ist. Ansonsten kannst du über die einzelnen Zeilen iterieren und die Regex so lange auf jede Zeile anwenden, bis du fündig geworden bist.

Gruß,
Manuel

Verfasst: Donnerstag 2. April 2009, 10:18
von Panke
Regulärer Ausdruck?