Jeśli chcesz w prosty sposób odczytać wszystkie wartości z sekcji w pliku właściwości:
config.properties
Układ Twojego pliku:
[SECTION_NAME]
key1 = value1
key2 = value2
Kodujesz:
import configparser
config = configparser.RawConfigParser()
config.read('path_to_config.properties file')
details_dict = dict(config.items('SECTION_NAME'))
To da ci słownik, w którym klucze są takie same jak w pliku konfiguracyjnym i odpowiadające im wartości.
details_dict
jest :
{'key1':'value1', 'key2':'value2'}
Teraz, aby uzyskać wartość klucza1:
details_dict['key1']
Umieszczenie tego wszystkiego w metodzie, która wczytuje tę sekcję z pliku konfiguracyjnego tylko raz (przy pierwszym wywołaniu metody podczas wykonywania programu).
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
Teraz wywołaj powyższą funkcję i uzyskaj wartość wymaganego klucza:
config_details = get_config_dict()
key_1_value = config_details['key1']
-------------------------------------------------- -----------
Rozszerzenie powyższego podejścia, automatyczne czytanie sekcji po sekcji, a następnie uzyskiwanie dostępu za pomocą nazwy sekcji, po której następuje nazwa klucza.
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
Mieć dostęp:
config_dict = get_config_section()
port = config_dict['DB']['port']
(tutaj „DB” to nazwa sekcji w pliku konfiguracyjnym, a „port” to klucz w sekcji „DB”).