Qual è l'uso previsto della sezione DEFAULT nei file di configurazione utilizzati da ConfigParser?

StackOverflow https://stackoverflow.com/questions/124692

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).

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top