ConfigParser
requiere que todas las secciones, claves y valores sean cadenas; No sorpresa. Tiene métodos para convertir los valores a tipos de datos con getfloat
, getint
, getboolean
. Si usted no sabe el tipo de datos, se puede envolver el get()
con un eval()
para conseguir tener la cadena evaluada como:La conversión de los valores de ConfigParser a los tipos de datos de Python
>>> from ConfigParser import SafeConfigParser
>>> cp = SafeConfigParser()
>>> cp.add_section('one')
>>> cp.set('one', 'key', '42')
>>> print cp.get('one', 'key')
'42'
>>> print eval(cp.get('one', 'key'))
42
>>> cp.set('one', 'key', 'None')
>>> print eval(cp.get('one', 'key'))
None
>>>
¿Hay una mejor manera? Supongo que hay algunas preocupaciones de seguridad graves con la evaluación de texto de un archivo, que reconozco; Confío completamente en el archivo.
Pensé que usaría pickle
para esto, pero realmente me gustaría mantener el archivo de configuración legible por humanos.
¿Cómo lo harías?
i utilizado su respuesta para crear esta: http: // codereview.stackexchange.com/questions/2775/python-subclassing-configparser – tMC