Qual è l'uso previsto della sezione DEFAULT nei file di configurazione utilizzati da ConfigParser?
-
02-07-2019 - |
Domanda
Ho usato ConfigParser per un po 'di tempo per semplici configurazioni. Una cosa che mi ha infastidito per molto tempo è la sezione DEFAULT. Non sono davvero sicuro di quale sia un uso appropriato. Ho letto la documentazione, ma mi piacerebbe davvero vedere alcuni esempi intelligenti del suo utilizzo e del modo in cui influenza altre sezioni del file (qualcosa che illustra davvero il tipo di cose che sono possibili).
Soluzione
Ho trovato una spiegazione qui cercando su Google "windows ini" "sezione predefinita". Riepilogo: qualunque cosa tu metta nella sezione [DEFAULT] viene propagata ad ogni altra sezione. Usando l'esempio dal sito Web collegato, supponiamo di avere un file di configurazione chiamato 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
Posso leggerlo usando ConfigParser:
>>> cp = ConfigParser.ConfigParser()
>>> cp.read('test1.ini')
['test1.ini']
>>> cp.get('host 1', 'lh_server')
'192.168.0.1'
Ma noto che lh_server è lo stesso in entrambe le sezioni; e, in effetti, mi rendo conto che sarà lo stesso per la maggior parte degli host che potrei aggiungere. Quindi posso farlo, come 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
Nonostante le sezioni non abbiano le chiavi lh_server, posso ancora accedervi:
>>> cp.read('test2.ini')
['test2.ini']
>>> cp.get('host 1', 'lh_server')
'192.168.0.1'
Leggi la pagina collegata per un ulteriore esempio dell'utilizzo della sostituzione variabile nella sezione DEFAULT per semplificare ulteriormente il file INI.