Saludos.
Buscando un modo de usar/crear archivos de configuración para un proyecto que estoy haciendo en python, conseguí un modulo que se encarga de eso.
El modulo se llama ConfigObj lo pueden conseguir en: sourceforge.net/projects/configobj
Y la documentación en: www.voidspace.org.uk/python/configobj.html.
Como se usa:
Leyendo la documentación se encuentra todas las funciones que se pueden usar, incluso para la validación, ver: www.voidspace.org.uk/python/validate.html
El archivo de configuración debe llevar un formato para que el modulo pueda leerlo correctamente, creando los valores, que son como una especie de variables, algo asi como: variable1 = 0 y en el que también existen secciones de forma: [seccion1] y cada sección anida valores, esto es útil para ordenar.
En el cual un archivo de configuración puede ser:
[seccion1]
varieble1 = 200
variable2 = ‘xyz’
[seccion2]
variable3 = 0
Ya para el final, coloco un ejemplo real que estoy usando en el programa, por ahora funciona para guardar el tamaño y posición de una ventana, lo estoy usando para gtk, pero puede servir para cualquier otra librería gráfica como qt, ya que no depende de ninguna, solo trabaja con el archivo de configuración y guarda las variables, que luego pueden ser usada como desee.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from configobj import ConfigObj
from validate import Validator,ValidateError
class C_Prefs:
config = ConfigObj(“config.cfg”, create_empty=True)
configV = Validator()
#tamaño y posicion de ventanas
windowWHpre = {‘width’ : 400, ‘height’ : 500, ‘x’ : 0, ‘y’ : 0}
result = len(config)
if result == 0:
config["windowWH"] = windowWHpre
config.write()
windowWH = config["windowWH"]
else:
windowWH = config["windowWH"]
for i in windowWHpre:
try:
result = configV.check(‘integer’, windowWH[i])
except:
windowWH[i] = windowWHpre[i]
width = int(windowWH["width"])
height = int(windowWH["height"])
x = int(windowWH["x"])
y = int(windowWH["y"])
def wrwindowWH(self, width, height, x, y):
self.config["windowWH"]["width"] = width
self.config["windowWH"]["height"] = height
self.config["windowWH"]["x"] = x
self.config["windowWH"]["y"] = y
self.config.write()
Este código revisa el archivo config.cfg y si no existe lo crea, ya el resto queda de parte de la curiosidad para revisar estas lineas y la documentación del modulo.









