Gestión de Configuraciones con ConfigParser en Python
En este tutorial aprenderemos a utilizar la biblioteca ConfigParser
de Python para leer y escribir archivos de configuración en formato INI. Los archivos de configuración son un recurso esencial para aplicaciones de software, ya que permiten a los usuarios personalizar el comportamiento de la aplicación.
Instalación
La biblioteca ConfigParser
forma parte de la biblioteca estándar de Python, por lo que no es necesario instalarla. Sin embargo, si queremos utilizar la última versión, podemos instalarla con el siguiente comando:
pip install configparser
Estructura de archivos INI
Los archivos de configuración en formato INI consisten en una serie de secciones, cada una de las cuales contiene una serie de opciones. Las secciones se identifican con un encabezado en forma de corchete cuadrado, seguido del nombre de la sección. Las opciones se identifican con un nombre de opción seguido de un signo igual (=) y el valor de la opción.
Por ejemplo, el siguiente archivo de configuración define dos secciones:
[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes
[bitbucket.org]
User = hg
La primera sección, DEFAULT
, contiene las opciones de configuración globales. La segunda sección, bitbucket.org
, contiene las opciones de configuración específicas para el servidor Bitbucket.
Lectura de archivos de configuración
Para leer un archivo de configuración con ConfigParser
, utilizamos el método read()
. Este método toma el nombre del archivo de configuración como argumento.
import configparser
config = configparser.ConfigParser()
config.read("config.ini")
Una vez que hemos leído el archivo de configuración, podemos acceder a las secciones y opciones utilizando los métodos sections()
y options()
.
print(config.sections())
# ['DEFAULT', 'bitbucket.org']
print(config.options("bitbucket.org"))
# ['User']
También podemos acceder a los valores de las opciones utilizando los métodos get()
y getint()
.
print(config.get("DEFAULT", "ServerAliveInterval"))
# 45
print(config.getint("DEFAULT", "CompressionLevel"))
# 9
Escritura de archivos de configuración
Para escribir un archivo de configuración con ConfigParser
, utilizamos el método write()
. Este método toma un objeto io.TextIOBase
como argumento.
config = configparser.ConfigParser()
config["DEFAULT"] = {"ServerAliveInterval": "45", "Compression": "yes", "CompressionLevel": "9", "ForwardX11": "yes"}
config["bitbucket.org"] = {"User": "hg"}
with open("config.ini", "w") as f:
config.write(f)
Este código creará un archivo de configuración con el mismo contenido que el ejemplo anterior.
Interpolación de valores
ConfigParser
también admite la interpolación de valores. Esto nos permite utilizar variables de entorno o valores calculados en los valores de las opciones.
La sintaxis para la interpolación de valores es la siguiente:
${variable}
Por ejemplo, el siguiente archivo de configuración utiliza la interpolación de valores para leer el nombre de usuario del sistema operativo:
[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes
[bitbucket.org]
User = ${USER}
Este código leerá el nombre de usuario del sistema operativo y lo asignará a la opción User
de la sección bitbucket.org
.
Conclusión
ConfigParser
es una herramienta útil para la gestión de configuraciones en Python. Es fácil de usar y admite una amplia gama de funciones.