Si necesita leer todos los valores de una sección en el archivo de propiedades de una manera simple:
Su config.properties
diseño de archivo:
[SECTION_NAME]
key1 = value1
key2 = value2
Usted codifica:
import configparser
config = configparser.RawConfigParser()
config.read('path_to_config.properties file')
details_dict = dict(config.items('SECTION_NAME'))
Esto le dará un diccionario donde las claves son las mismas que en el archivo de configuración y sus valores correspondientes.
details_dict
es :
{'key1':'value1', 'key2':'value2'}
Ahora para obtener el valor de key1:
details_dict['key1']
Poniendo todo en un método que lee esa sección del archivo de configuración solo una vez (la primera vez que se llama al método durante la ejecución de un programa).
def get_config_dict():
if not hasattr(get_config_dict, 'config_dict'):
get_config_dict.config_dict = dict(config.items('SECTION_NAME'))
return get_config_dict.config_dict
Ahora llame a la función anterior y obtenga el valor de la clave requerida:
config_details = get_config_dict()
key_1_value = config_details['key1']
-------------------------------------------------- -----------
Extendiendo el enfoque mencionado anteriormente, leyendo sección por sección automáticamente y luego accediendo por nombre de sección seguido de nombre de clave.
def get_config_section():
if not hasattr(get_config_section, 'section_dict'):
get_config_section.section_dict = dict()
for section in config.sections():
get_config_section.section_dict[section] =
dict(config.items(section))
return get_config_section.section_dict
Acceder:
config_dict = get_config_section()
port = config_dict['DB']['port']
(aquí 'DB' es un nombre de sección en el archivo de configuración y 'puerto' es una clave en la sección 'DB').