Se você precisar ler todos os valores de uma seção no arquivo de propriedades de uma maneira simples:
O config.properties
layout do seu arquivo:
[SECTION_NAME]
key1 = value1
key2 = value2
Você codifica:
import configparser
config = configparser.RawConfigParser()
config.read('path_to_config.properties file')
details_dict = dict(config.items('SECTION_NAME'))
Isso fornecerá um dicionário onde as chaves são iguais às do arquivo de configuração e seus valores correspondentes.
details_dict
é :
{'key1':'value1', 'key2':'value2'}
Agora, para obter o valor de key1:
details_dict['key1']
Colocando tudo isso em um método que lê essa seção do arquivo de configuração apenas uma vez (na primeira vez em que o método é chamado durante a execução do 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
Agora chame a função acima e obtenha o valor da chave necessária:
config_details = get_config_dict()
key_1_value = config_details['key1']
-------------------------------------------------- -----------
Estendendo a abordagem mencionada acima, lendo seção por seção automaticamente e acessando pelo nome da seção seguido pelo nome da chave.
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
Acessar:
config_dict = get_config_section()
port = config_dict['DB']['port']
(aqui 'DB' é um nome de seção no arquivo de configuração e 'port' é uma chave na seção 'DB'.)