Se devi leggere tutti i valori da una sezione nel file delle proprietà in modo semplice:
Il tuo config.propertieslayout di file:
[SECTION_NAME]
key1 = value1
key2 = value2
Si codice:
import configparser
config = configparser.RawConfigParser()
config.read('path_to_config.properties file')
details_dict = dict(config.items('SECTION_NAME'))
Questo ti darà un dizionario in cui le chiavi sono le stesse del file di configurazione e i loro valori corrispondenti.
details_dict è:
{'key1':'value1', 'key2':'value2'}
Ora per ottenere il valore di key1:
details_dict['key1']
Mettendo tutto in un metodo che legge quella sezione dal file di configurazione una sola volta (la prima volta che il metodo viene chiamato durante l'esecuzione di un programma).
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
Ora chiama la funzione sopra e ottieni il valore della chiave richiesta:
config_details = get_config_dict()
key_1_value = config_details['key1']
-------------------------------------------------- -----------
Estendere l'approccio sopra menzionato, leggendo la sezione per sezione automaticamente e quindi accedendo per nome della sezione seguito dal nome della chiave.
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
Accedere:
config_dict = get_config_section()
port = config_dict['DB']['port']
(qui 'DB' è un nome di sezione nel file di configurazione e 'port' è una chiave nella sezione 'DB'.)