[Python-de] Konfiguration und Kommandozeilenoptionen parsen

Henning.Ramm at mediapro-gmbh.de Henning.Ramm at mediapro-gmbh.de
Mon Aug 8 18:10:55 CEST 2005


>> Ausserdem wuesste ich gerne ob es Alternativen zum ConfigParser gibt,
>> ausser natuerlich selbst was zu schreiben...
>Was stört Dich an ConfigParser??

Mich stört daran die Beschränkung auf die INI-Syntax. Damit sind z.B. keine verschachtelten Gruppen von zusammengehörigen Einstellungen möglich.
Ich setze für meine Bedürfnisse ein einfaches XML-Format ein, z.B.
<config>
	<key id="encoding">utf-8</key>
	<key id="basedir">D:/bla</key>
	<key id="lockdir">D:/bla/bin/lock</key>
	<section id="logging">
		<section id="handlers">
			<section id="file">
				<key id="class">RotatingFileHandler</key>
				<key id="logdir">log</key>
				<key id="filename">epy-%(appname)s_%(datum)s.log</key>
				<key id="level">INFO</key>
				<key id="formatter">lang</key>
				<key id="args">('%(logfile)s', 'a', 2500000, 9)</key>
			</section>
...
Das hat für mich den Vorteil, dass ich eine Konfiguration für eine ganze Gruppe von Programmen einsetzen kann, und XML-Parser gibt es ja genügend.
Ich erzeuge aus dem XML-Baum ein verschachteltes Dictionary, für das Parsen verschiedener <key>-Werte sind dann die entsprechenden Module selbst verantwortlich.
Leider kann ich die Daten noch nicht zurückschreiben (wäre natürlich kein Problem, aber Reihenfolge und Kommentare gingen mir mit der aktuellen Lösung verloren).

Grüße vom Südsee!
Henning Hraban Ramm
Südkurier Medienhaus / MediaPro
Systembetreuung / Systementwicklung