Config-Datei automatisch parsen

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
TechnoFeather
User
Beiträge: 20
Registriert: Freitag 24. Juli 2009, 11:07

Ja, der Programmcode hat vorher existiert und funktioniert. Dann kam mir der Gedanke, dass es sehr gut sein kann, dass sich der Anwendungspfad und Datei im laufe des Jahres noch ändern könnte. Daher die Idee das mittels Config.ini zu lösen.
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@TechnoFeather: genau in Deinem Fall willst Du ja gar nicht alle Pfade und Anwendungen durchnummeriert als Variablen haben, sondern in einer passenden Struktur, etwa:

Code: Alles auswählen

pfade = {int(n.split('_',1)[1]):v for n,v in parser.items('Default') if n.startswith('Pfad_')}
anwendungen = {int(n.split('_',1)[1]):v for n,v in parser.items('Default') if n.startswith('Anwendung_')}
und mit

Code: Alles auswählen

max_error_count = parser.getint('Default', 'MaxErrorcount')
ist auch jedem, der das Programm liest sofort klar, dass max_error_count aus der Config-Datei kommt und ein int ist.
Benutzeravatar
snafu
User
Beiträge: 6741
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ich sehe das ähnlich wie Sirius3: Die Stellen, die variieren, kann man leicht mit den passenden Gettern des `ConfigParser`s ersetzen. Dann braucht es noch 2 Zeilen, um ein `ConfigParser()`-Objekt zu erstellen und die passende Datei einzulesen und das war's. Das ist tausendmal transparenter und wartungsfreundlicher als ein automatisiertes Herumpfuschen im globalen Namensraum.
Antworten