Si vous avez besoin de lire toutes les valeurs d'une section dans le fichier de propriétés d'une manière simple:
La config.properties
mise en page de votre fichier:
[SECTION_NAME]
key1 = value1
key2 = value2
Vous codez:
import configparser
config = configparser.RawConfigParser()
config.read('path_to_config.properties file')
details_dict = dict(config.items('SECTION_NAME'))
Cela vous donnera un dictionnaire où les clés sont les mêmes que dans le fichier de configuration et leurs valeurs correspondantes.
details_dict
est :
{'key1':'value1', 'key2':'value2'}
Maintenant, pour obtenir la valeur de key1:
details_dict['key1']
Mettre le tout dans une méthode qui lit cette section à partir du fichier de configuration une seule fois (la première fois que la méthode est appelée pendant l'exécution d'un programme).
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
Appelez maintenant la fonction ci-dessus et obtenez la valeur de la clé requise:
config_details = get_config_dict()
key_1_value = config_details['key1']
-------------------------------------------------- -----------
Extension de l'approche mentionnée ci-dessus, lecture section par section automatiquement puis accès par nom de section suivi du nom de clé.
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
Accéder:
config_dict = get_config_section()
port = config_dict['DB']['port']
(ici 'DB' est un nom de section dans le fichier de configuration et 'port' est une clé sous la section 'DB'.)