Якщо вам потрібно прочитати всі значення з розділу у файлі властивостей простим способом:
config.properties
Макет вашого файлу:
[SECTION_NAME]
key1 = value1
key2 = value2
Ви кодуєте:
import configparser
config = configparser.RawConfigParser()
config.read('path_to_config.properties file')
details_dict = dict(config.items('SECTION_NAME'))
Це дасть вам словник, де ключі такі ж, як у конфігураційному файлі та відповідні їм значення.
details_dict
є:
{'key1':'value1', 'key2':'value2'}
Тепер, щоб отримати значення key1:
details_dict['key1']
Поклавши все це у метод, який читає цей розділ з конфігураційного файлу лише один раз (перший раз, коли метод викликається під час виконання програми).
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
Тепер зателефонуйте до вищевказаної функції та отримайте необхідне значення ключа:
config_details = get_config_dict()
key_1_value = config_details['key1']
-------------------------------------------------- -----------
Розширюючи вищезазначений підхід, читайте розділ за розділом автоматично, а потім отримуйте доступ до назви розділу, а потім імені ключа.
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
Доступу:
config_dict = get_config_section()
port = config_dict['DB']['port']
(тут 'DB' - назва розділу у конфігураційному файлі, а 'port' - ключ у розділі 'DB'.)