Wenn Sie alle Werte aus einem Abschnitt in der Eigenschaftendatei auf einfache Weise lesen müssen:
Ihr config.properties
Dateilayout:
[SECTION_NAME]
key1 = value1
key2 = value2
Sie codieren:
import configparser
config = configparser.RawConfigParser()
config.read('path_to_config.properties file')
details_dict = dict(config.items('SECTION_NAME'))
Dadurch erhalten Sie ein Wörterbuch, in dem die Schlüssel mit den Konfigurationsdateien und den entsprechenden Werten identisch sind.
details_dict
ist:
{'key1':'value1', 'key2':'value2'}
Um nun den Wert von key1 zu erhalten:
details_dict['key1']
Fügen Sie alles in eine Methode ein, die diesen Abschnitt nur einmal aus der Konfigurationsdatei liest (das erste Mal, wenn die Methode während eines Programmlaufs aufgerufen wird).
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
Rufen Sie nun die obige Funktion auf und erhalten Sie den Wert des gewünschten Schlüssels:
config_details = get_config_dict()
key_1_value = config_details['key1']
-------------------------------------------------- -----------
Erweitern Sie den oben genannten Ansatz, lesen Sie Abschnitt für Abschnitt automatisch und greifen Sie dann auf den Abschnittsnamen gefolgt vom Schlüsselnamen zu.
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
Zugreifen:
config_dict = get_config_section()
port = config_dict['DB']['port']
(Hier ist 'DB' ein Abschnittsname in der Konfigurationsdatei und 'Port' ist ein Schlüssel unter Abschnitt 'DB'.)