configparser - Eintrag als format-String

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
drnicolas
User
Beiträge: 127
Registriert: Sonntag 24. Juli 2016, 10:32

Nach meinen bisherigen Recherchen scheint das nicht möglich zu sein, aber vielleicht suche ich ja falsch

Ich suche sowas in der Art:

Code: Alles auswählen

ABC.ini
	TESTFORMAT='Herr {Nachname}'
:

xxx=<lese TESTFORMAT>
print(fxxx)

Gibt's dafür eine Lösung?
Es sollen flexibel Texte mit Variableninhalten kombiniert werden

:roll:
Benutzeravatar
noisefloor
User
Beiträge: 4262
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

klingt eher danach, dass du eine Template Engine suchst. Die definiert, allgemein gesprochen, Text und darin können Platzhalter, Bedingungen, Schleifen etc sein, die erst beim Rendern der Templates ausgefüllt / - geführt werden. DIE Template Engine schlechthin für Python ist Jinja2. Wird super oft in der Webprogrammierung für HTML Templates benutzt, aber man kann mit Template Engines im Prinzip jedes beliebige, textbasierte Format darstellen.

Die Standardbibliothek von Python kennt noch die Template Klasse im String Modul, das ist eine ziemlich einfache Template Engine.

Gruß, noisefloor
nezzcarth
User
Beiträge: 1793
Registriert: Samstag 16. April 2011, 12:47

Wenn die Ersetzung bereits während des Einlesens passieren kann, kannst du die Interpolations-Features von 'configparser' verwenden: https://docs.python.org/3/library/confi ... -of-values
Als 3rd Part-Modul gibt es 'configobj', das ich als mächtigere Variante von 'configparser' beschreiben würde, die auch bei der Interpolation noch etwas mehr Features hat.

Wenn du die Ersetzung in deinem Code durchführen möchtest, s. Post von noiseflooor (wobei ich persönlich raten würde, die Engine zu verwenden, die das minimal notwendige Featureset mitbringt; auf Logik in Konfigurationsdateien würde ich verzichten, außer es geht nicht anders).
Antworten