Saltar al contenido

Cómo usar ConfigParser en Python

¿Qué es Config Parser?

El módulo configparser en Python se usa para trabajar con archivos de configuración.

Es muy similar a los archivos INI de Windows.

Puede usarlo para administrar archivos de configuración editables por el usuario para una aplicación.

Los archivos de configuración están organizados en secciones y cada sección puede contener pares de nombre y valor para los datos de configuración.

Las secciones del archivo de configuración se identifican buscando líneas que comiencen con [ and ending with ].

El valor entre corchetes es el nombre de la sección y puede contener cualquier carácter excepto los corchetes.

Las opciones se enumeran una por línea dentro de una sección.

La línea comienza con el nombre de la opción, que está separada del valor por dos puntos (:) o el signo igual (=).

Los espacios en blanco alrededor del separador se ignoran cuando se analiza el archivo.

Un archivo de configuración de muestra con la sección “bug_tracker” y tres opciones se vería así:


[bug_tracker]
url = http://localhost:8080/bugs/
username = dhellmann
password = SECRET

Uso común

El uso más común de un archivo de configuración es que un usuario o administrador del sistema edite el archivo con un editor de texto normal para establecer los valores predeterminados de comportamiento de la aplicación, y luego que la aplicación lea el archivo, lo analice y actúe en función de su contenido.

Un ejemplo sería el archivo de configuración de MySQL.

El siguiente script leerá el archivo de configuración /etc/mysql/debian.cnf para obtener los detalles de inicio de sesión para MySQL, conectarse a MySQL y pedirle una lista de todas las bases de datos, revise esta lista llamando a mysqldump en cada una.

Este script se basa en un fragmento de código que encontré en http://codepoets.co.uk/2010/python-script-to-backup-mysql-databases-on-debian/

Realice una copia de seguridad de todas las bases de datos MySQL, una en cada archivo con una marca de tiempo al final.

#Importing the modules
import os
import ConfigParser
import time

# On Debian, /etc/mysql/debian.cnf contains 'root' a like login and password.
config = ConfigParser.ConfigParser()
config.read("/etc/mysql/debian.cnf")
username = config.get('client', 'user')
password = config.get('client', 'password')
hostname = config.get('client', 'host')
filestamp = time.strftime('%Y-%m-%d')

# Get a list of databases with :
database_list_command="mysql -u %s -p%s -h %s --silent -N -e 'show databases'" % (username, password, hostname)
for database in os.popen(database_list_command).readlines():
    database = database.strip()
    if database == 'information_schema':
        continue
    if database == 'performance_schema':
        continue
    filename = "/backups/mysql/%s-%s.sql" % (database, filestamp)
    os.popen("mysqldump --single-transaction -u %s -p%s -h %s -d %s | gzip -c > %s.gz" % (username, password, hostname, database, filename))
Para obtener más información sobre ConfigParser, consulte estos enlaces:

http://www.doughellmann.com/PyMOTW/ConfigParser/
http://docs.python.org/2/library/configparser.html

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.