El módulo configparser: leer archivos .ini

En el post anterior mostramos cómo utilizar el módulo configparser para leer archivos de configuración con Python. Si miramos nuevamente, veremos que los objetos creados guardan una similitud con los diccionarios. Si bien hay algunas diferencias, en esta oportunidad nos enfocaremos en el método get(). Tal como sucede con los diccionarios, esta función nos permite especificar el valor por defecto de una variable en el caso de que no se le haya asignado uno.

El módulo configparser

En este post volveremos a utilizar el archivo de configuración /home/gacanepa/miprograma.conf. En primer lugar, volveremos a repetir las mismas líneas de código Python que usaremos para procesarlo:

import configparser
 
configuracion = configparser.ConfigParser()
configuracion.read('/home/gacanepa/miprograma.conf')
seccionMiscelaneo = configuracion['MISCELANEO']
grupo = seccionMiscelaneo.get('Grupo', 'mengano')
usuario = seccionMiscelaneo.get('Usuario', 'suntano')

print('El usuario dueño es', usuario, 'y el grupo propietario es', grupo)

En la Fig. 1 podemos ver el resultado de la ejecución del código:

El módulo configparser en acción
Figura 1 – El módulo configparser en acción

Si prestamos atención a la Fig. 1, veremos lo siguiente:

  • En el archivo /home/gacanepa/miprograma.conf no existe una variable llamada Grupo bajo la sección MISCELANEO. Por esa razón, el método get() lo crea y le asigna el valor mengano. Las líneas resaltadas en rosa ofrecen más detalles.
  • Como sí existe una variable llamada Usuario, el método get() no surte efecto por más que especifiquemos un valor para la misma. Como vemos en las líneas resaltadas en verde, el mensaje del final muestra el valor de esta variable según aparece en el archivo de configuración.

Interesante, ¿no?

Otros detalles sobre el módulo configparser

Además de la sintaxis variable = valor, el módulo configparser también acepta el formato variable : valor. Además, los valores (en cualquiera de los dos formatos de línea anteriores) pueden ocupar más de una línea (dejando un espacio o tabulación en líneas sucesivas después de la primera). Para más detalles, podemos ver la Fig. 2:

El módulo configparser permite utilizar variables cuyos valores ocupan más de una línea
Figura 2 – El módulo configparser permite utilizar variables cuyos valores ocupan más de una línea

y como no podía ser de otra manera, también es posible agregar comentarios colocando el signo # al comienzo de una línea.

Espero que este post les haya sido útil. ¡Hasta pronto!

¡Aprovechá la oportunidad de suscribirte al blog para recibir en tu correo el post nuestro de cada día, novedades, y promociones exclusivas!