Was ist die beabsichtigte Verwendung des STANDARD Abschnitt in Konfigurationsdateien, die von ConfigParser?
-
02-07-2019 - |
Frage
Ich habe ConfigParser für eine ganze Weile für einfache Konfigurationen verwendet. Eine Sache, die mich für eine lange Zeit abgehört hat ist die Standard-Seite. Ich bin nicht wirklich sicher, was ist eine angemessene Nutzung. Ich habe die Dokumentation zu lesen, aber ich würde wirklich gerne ein paar cleveren Beispiele für seine Verwendung sehen und wie wirkt es andere Abschnitte in der Datei (etwas, das wirklich die Art der Dinge zeigt, die möglich sind).
Lösung
Ich fand eine Erklärung hier durch für „Fenster ini“ „default Abschnitt“ googeln. Zusammenfassung: was auch immer Sie im Abschnitt [Default] gesetzt wird zu jedem anderen Abschnitt propagiert. Am Beispiel von der Website verlinkt sind, lassen Sie uns sagen, dass ich eine Konfigurationsdatei namens TEST1.INI:
[host 1]
lh_server=192.168.0.1
vh_hosts = PloneSite1:8080
lh_root = PloneSite1
[host 2]
lh_server=192.168.0.1
vh_hosts = PloneSite2:8080
lh_root = PloneSite2
Ich kann dies mit ConfigParser lesen:
>>> cp = ConfigParser.ConfigParser()
>>> cp.read('test1.ini')
['test1.ini']
>>> cp.get('host 1', 'lh_server')
'192.168.0.1'
Aber ich merke, dass lh_server ist das gleiche in beiden Abschnitten; und in der Tat, merke ich, dass es das gleiche für die meisten Wirte sein wird wie ich hinzufügen möchte. So kann ich dies tun, als test2.ini:
[DEFAULT]
lh_server=192.168.0.1
[host 1]
vh_root = PloneSite1
lh_root = PloneSite1
[host 2]
vh_root = PloneSite2
lh_root = PloneSite2
Trotz der Abschnitte nicht lh_server Schlüssel hat, kann ich sie noch zugreifen:
>>> cp.read('test2.ini')
['test2.ini']
>>> cp.get('host 1', 'lh_server')
'192.168.0.1'
Lesen Sie die verknüpfte Seite für ein weiteres Beispiel für die Variablensubstitution in dem STANDARD-Abschnitt mit der INI-Datei noch mehr zu vereinfachen.