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
cpp Dateien auslesen und Variablen mit python nutzen
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
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
Moin,
oder du parst die Datei einfach mit einer Regex (ungetestet):
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
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)
Gruß,
Manuel