No me importa si se trata de JSON
, pickle
, YAML
, o lo que sea.
Todas las demás implementaciones que he visto no son compatibles con versiones posteriores, por lo que si tengo un archivo de configuración, agrego una nueva clave en el código y luego cargue ese archivo de configuración, simplemente fallará.
¿Existe alguna forma sencilla de hacer esto?
.ini
formato similar al delconfigparser
módulo debería hacer lo que quieres.Respuestas:
Archivos de configuración en Python
Hay varias formas de hacer esto según el formato de archivo requerido.
ConfigParser [formato .ini]
Usaría el enfoque de configparser estándar a menos que haya razones de peso para usar un formato diferente.
Escribe un archivo así:
El formato del archivo es muy simple con secciones marcadas entre corchetes:
Los valores se pueden extraer del archivo de la siguiente manera:
JSON [formato .json]
Los datos JSON pueden ser muy complejos y tienen la ventaja de ser altamente portátiles.
Escribe datos en un archivo:
Leer datos de un archivo:
YAML
En esta respuesta se proporciona un ejemplo básico de YAML . Se pueden encontrar más detalles en el sitio web de pyYAML .
fuente
from configparser import ConfigParser
config = ConfigParser()
Ejemplo básico de ConfigParser
El archivo se puede cargar y utilizar así:
que salidas
Como puede ver, puede utilizar un formato de datos estándar que sea fácil de leer y escribir. Los métodos como getboolean y getint le permiten obtener el tipo de datos en lugar de una simple cadena.
Configuración de escritura
resultados en
Ejemplo básico de XML
Parece que la comunidad de Python no lo usa en absoluto para archivos de configuración. Sin embargo, analizar / escribir XML es fácil y hay muchas posibilidades para hacerlo con Python. Uno es BeautifulSoup:
donde el config.xml podría verse así
fuente
Si desea usar algo como un archivo INI para mantener la configuración, considere usar configparser que carga pares clave-valor de un archivo de texto y puede escribir fácilmente en el archivo.
El archivo INI tiene el formato:
fuente
Guarde y cargue un diccionario. Tendrá claves arbitrarias, valores y un número arbitrario de pares de claves y valores.
fuente
Intente usar ReadSettings :
fuente
intente usar cfg4py :
DESCARGO DE RESPONSABILIDAD: Soy el autor de este módulo
fuente