Python - Fichier de configuration
Introduction
Avoir pour son projet un fichier de configuration contenant l'ensemble de ses variables d'environnement c'est quand même pratique.
Un équivalent d'un .ini où l'on trouve toutes nos variables au même endroit et dans un format lisible et facilement éditable. Le rêve non ?
Penchons nous aujourd'hui sur ConfigParser.
Fichier de configuration
Il peut avoir le nom que vous voulez, et peut se découper en différentes sections. Voyons cela ensemble avec l'exemple suivant d'un fichier que nous nommerons configuration
:
[DATABASE]
# tout ce qui concerne l'accès à la base de donnée
databasename : mydatabase.db
user : toto
password : supercomplexpass
[WEBSITE]
# l'accès au site
url : mywebsite.com
context : uri
On voie que les valeurs peuvent être organisées par sections pour plus de lisibilité. Vous avez ici un exemple simple, mais comme on peut le voir dans la section de la documentation correspondant, le format accorde pas mal de souplesse avec
- la possibilité d'utiliser le signe = en remplacement des :
- avoir des espace dans le nom des variable ou des valeurs
- des tabulations
et bien d'autres choses.
Utilisation en Python
C'est parti ? On code ?
import configparser # importation de notre librairie du jour
conf = configparser.ConfigParser() # on crée un objet 'conf' pour exploiter le fichier.
conf.read('configuration') # on ouvre notre fichier de configuration
# ensuite, on peut faire des get pour récupérer chaque valeur de notre fichier de configuration.
# avec en premier paramètre, la section, puis le nom de la clef.
# je récupère ici la valeur de la clef dans une variable portant le même nom
# mais ce n'est pas une obligation.
databasename = conf.get('DATABASE','databasename')
user = conf.get('DATABASE','user')
password = conf.get('DATABASE','password')
url = conf.get('WEBSITE','url')
context = conf.get('WEBSITE','context')
# Un petit print pour montrer que je ne vous balade pas :)
print (databasename, user, password, url, context)
Il faut cependant avoir une chose en tête. Le type des valeurs présentes dans les fichiers de configuration est unique : elles sont toujours stockées en tant que chaînes de caractères.
Si on a besoin de stocker d'autre type de valeurs, il faudra réaliser la conversion. Plus de détail ici.
Conclusion et remerciements
Pour aller plus loin, la documentation officiel du module.
Enfin, merci à ce site que j'ai trouvé au grès qu'une recherche google et qui m'a donné le point de départ pour ce sujet. Allez-y et fouillez les autres pages, il regorge de bonnes pages et sujets bien écris.