2008-09-24 11 views
23

He usado ConfigParser durante bastante tiempo para configuraciones simples. Una cosa que me molestó durante mucho tiempo es la sección DEFAULT. No estoy seguro de qué es un uso apropiado. He leído la documentación, pero realmente me gustaría ver algunos ejemplos inteligentes de su uso y cómo afecta a otras secciones del archivo (algo que realmente ilustra el tipo de cosas que son posibles).¿Cuál es el uso previsto de la sección DEFAULT en los archivos de configuración utilizados por ConfigParser?

Respuesta

31

Encontré una explicación here buscando en Google "windows ini" "sección por defecto". Resumen: lo que sea que ponga en la sección [DEFAULT] se propaga a cada otra sección. Usando el ejemplo de la página web vinculada, vamos a decir que tengo un archivo de configuración llamado 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 

puedo leer esto utilizando ConfigParser:

>>> cp = ConfigParser.ConfigParser() 
>>> cp.read('test1.ini') 
['test1.ini'] 
>>> cp.get('host 1', 'lh_server') 
'192.168.0.1' 

pero noto que lh_server es la misma en ambas secciones; y, de hecho, me doy cuenta de que será lo mismo para la mayoría de los hosts que pueda agregar. Así que puedo hacer esto, como 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 

A pesar de las secciones no tienen llaves lh_server, todavía puedo acceder a ellos:

>>> cp.read('test2.ini') 
['test2.ini'] 
>>> cp.get('host 1', 'lh_server') 
'192.168.0.1' 

Leer la página vinculada a un ejemplo más de la utilización de variables sustitución en la sección DEFAULT para simplificar aún más el archivo INI.

+0

+1 para usar Python en los ejemplos. – refi64

Cuestiones relacionadas