Outils pour utilisateurs

Outils du site


fichier_de_configuration

Comment gérer un fichier de configuration avec le module ConfigParser

Le module ConfigParser permet facilement de gérer un fichier de configuration du même genre que les fichiers “.ini” de Windows.

Par exemple:

[Section1]
cle11 = valeur11
cle12 = valeur12
cle13 = valeur13
cle14 = 100
cle15 = 1.123654789
cle16 = True

[Section2]
cle21 = valeur21
cle22 = valeur22

Il suffit d'importer le module pour disposer de toutes ses fonctionnalités:

import ConfigParser

Créer un nouveau fichier de configuration


Pour créer le fichier de configuration en mémoire:

cfg = ConfigParser.ConfigParser()


Pour ajouter une section:

S = 'Section1'
cfg.add_section(S)
 
S = 'Section2'
cfg.add_section(S)


Ou plus simplement:

cfg.add_section('Section1')
cfg.add_section('Section2')


Pour ajouter des options:

S = 'Section1'
cfg.set(S, 'cle11', 'valeur11')
cfg.set(S, 'cle12', 'valeur12')
cfg.set(S, 'cle13', 'valeur13')
cfg.set(S, 'cle14', 100)
cfg.set(S, 'cle15', 1.123654789)
cfg.set(S, 'cle16', True)
 
S = 'Section2'
cfg.set(S, 'cle21', 'valeur21')
cfg.set(S, 'cle22', 'valeur22')

NB: qu'on écrive la valeur numérique 100 ou la valeur chaîne '100', elle sera stockée sous forme de chaîne de caractères dans le fichier disque!


Quelque chose de surprenant: la valeur d'une option peut être une chaîne de caractères multiligne! Il suffit de la stocker avec les triples guillemets (ou triples apostrophes). Elle sera stockée en multiligne aussi dans le fichier sur disque.

Exemple:

M="""
hivghrfivnirdlsm
nhisvnhgidnvgid
vnghrfivnghinvg
"""
cfg.set('Section1', 'cle12', M)

Image du fichier stocké sur disque:

[Section1]
cle11 = valeur11
cle12 = 
	hivghrfivnirdlsm
	nhisvnhgidnvgid
	vnghrfivnghinvg
	
cle13 = valeur13
...
...


Ecrire le fichier de configuration sur disque:

cfg.write(open('ficherdeconfig.cfg','w'))

Charger, lire et modifier le fichier de configuration


A l'occasion d'une session suivante, charger le fichier de configuration

cfg = ConfigParser.ConfigParser()
cfg.read('ficherdeconfig.cfg')


Lire la valeur de l'option 'clé22' de la section 'Section2'

X = cfg.get('Section2', 'cle22')
print X  #  affiche: 'valeur22'


Modifier la valeur de cette option

cfg.set('Section2', 'cle22', 'valeur22_modif')


Lire les valeurs non-chaîne en les convertissant directement dans le bon type:

Z=cfg.getint('Section1', 'cle14')
print Z, type(Z)  #  affiche: 100 <type 'int'>
 
Z=cfg.getfloat('Section1', 'cle15')
print Z, type(Z)  #  affiche: 1.123654789 <type 'float'>
 
Z=cfg.getboolean('Section1', 'cle16')
print Z, type(Z)  #  affiche: True <type 'bool'>


Lister toutes les sections disponibles:

print cfg.sections()  # affiche: ['Section2', 'Section1']


Lister toutes les options disponibles de la section 'Section1'

print cfg.options('Section1')  # affiche: ['cle11', 'cle12', 'cle13', 'cle14', 'cle15', 'cle16']


Lister tous les couples clé-valeur de la section 'Section1':

print cfg.items('Section1')  #  affiche: [('cle11', 'valeur11'), ('cle12', 'valeur12'), ('cle13', 'valeur13'), ('cle14', '100'), ('cle15', '1.123654789'), ('cle16', 'True')]


Effacer l'option 'cle12' de la section 'Section1'

cfg.remove_option('Section1','cle12')


Effacer la section 'Section2' (et toutes ses options)

cfg.remove_section('Section2')


Et, bien sûr, n'oubliez pas de ré-écrire le fichier sur disque après toutes ces modifications!

cfg.write(open('ficherdeconfig.cfg','w'))

fichier_de_configuration.txt · Dernière modification: 2008/07/07 13:58 de tyrtamos

Outils de la page