ConfigParser y secciones en mayuscula/minuscula

Arnau Sanchez pyarnau en gmail.com
Vie Jul 10 13:41:49 CEST 2009


Oswaldo Hernández wrote:

> El problema con el que me encuentro es que si intento leer una sección 
> llamada '[general]' y el usuario la ha escrito como '[GENERAL]' ó 
> '[General]' el modulo ConfigParser no la encuentra.

En general, quien toca un fichero de configuración debería saber lo que está 
haciendo. Pero en fin, supongo que es un caso especial de usuario no técnico.

> Veo que una vez que el objeto ConfigParser ha leido el archivo, tiene la 
> propiedad '_sections' que es un diccionario con todo el contenido del 
> archivo ini. La unica solución que se me ocurre hacer una copia de este 
> diccionario convirtiendo los nombres de seccion y clave a minúsculas.

Se me ocurre otra forma, mira:

http://docs.python.org/library/configparser.html#ConfigParser.ConfigParser

El segundo parámetro de ConfigParser() es el tipo de diccionario que usará 
internamente. Si le pasas una clase que implemente un diccionario con claves 
case-insensitive, como por ejemplo ésta de aquí:

http://code.activestate.com/recipes/283455/

Podrás hacer algo así:

parser = ConfigParser(dict_type=caselessDict)
parser.read("file.conf")
parse.get("MySECtiON", "var1")

> NOTA: Sorry si este mensaje llega dos veces, lo envie anteriormente con 
> el from erroneo.

Tranquilo, llegó sólo una; si lo mandas desde una cuenta no registrada el 
mensaje queda en espera de aprobación, a mi me ha pasado varias veces (lo que no 
sé es si los administradores se miran esos mensajes o no).


-- 
Desarrollador freelance
http://www.arnau-sanchez.com
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es