1 - Le module configparser
Le langage Python est doté d'un module nommé configparser qui permet d'utiliser et manipuler les fichiers de configuration similaires aux fichiers Windows du type .ini
le module configparser pourra être utilisé pour gérer les fichiers de configurations modifiables par l'utilisateur au sein d'une application. Le contenu d'un fichier de configuration peut être organisé en sections contenant chacune des paramètres avec des valeurs associées. Plusieurs types de valeurs d'options sont pris en charge, y compris les entiers, les valeurs à virgule flottante et les booléens.
2 -Format du fichier de configuration
Le format de fichier utilisé par configparser est similaire à celui utilisé par les anciennes versions de Microsoft Windows. Il se compose d'une ou de plusieurs sections nommées, chacune pouvant contenir des options avec des noms et des valeurs.
- Les sections de fichier de configuration sont identifiées en recherchant les lignes commençant par [ et se terminant par ]. La valeur entre les crochets désigne le nom de la section et peut contenir tous les caractères sauf les crochets.
- Les options sont répertoriées une par ligne dans une section. La ligne commence par le nom de l'option, qui est séparée de la valeur par un signe deux-points " : " ou un signe égale " = "
- Les commentaires : sont des lignes commençant par un point-virgule " ; " ou une dièse " # " et sont traitées comme des commentaires et ne sont pas visibles lors de l'accès par programme au contenu du fichier de configuration.
L'exemple suivant du fichier de configuration, comporte une section nommée settings avec trois options, host, username et password:
Exemple. configuration.ini
3 - Lecture de la valeur d'une option d'un fichier de configuration .ini en Python
Avec le langage Python on peut se servir du module configparser et la méthode read() de l'objet ConfigParser pour lire le fichier de configuration:
Exemple. Lecture du fichier configuration.ini en Python
4 - Mettre à jour un paramètre
Pour mettre à jour un paramètre du fichier de configuration, on doit préalablement l'ouvrir en mode lecture et écriture et utiliser ensuite la méthode set() de la classe ConfigParser
Exemple. mettre à jour la valeur du paramètre 'host'
Maintenant si vous ouvrez le fichier configuration.ini, vous allez constater que le paramètre host = 127.0.0.1 est devenu host = localhost
5 - Lecture des sections d'un fichier de configuration
La méthode sections() de l'objet parser, permet de récupérer les sections du fichier de configuration sous forme d'une liste :
Exemple. configuration.ini
Exemple. lecture des sections du fichier configuration.ini
6 - Lire la liste des options avec la méthode options()
La méthode options() de l'objet ConfigParser, permet de récupérer la liste des options d'une section du fichier de configurations:
Exemple. Liste des options de la première section:
Et en utilisant la boucle for, on peut obtenir toutes les sections avec leurs options :
Exemple. Liste de toutes les sections avec leurs options :
Ce qui affiche à l'exécution :
settings : ['host', 'username', 'password']
Safe_Mode : ['safe_mode', 'safe_mode_gid']
File_Uploads : ['file_uploads', 'upload_tmp_dir', 'upload_max_filesize']
7 - Lecture totale avec la méthode items()
La méthode items(), permet de récupérer les noms des paramètres à avec leurs valeurs :
Exemple. récupération des paramètres et valeurs de la premières section
Affichage complet des sections avec leurs paramètres et valeurs :
Ce qui affiche après exécution:
8 - Ajouter une section avec la méthode add_section()
Avec la méthode add_section() de la classe ConfigParser, on peut ajouter autant de sections qu'on souhaite, pour cela on doit préalablement ouvrir le fichier de configuration en mode lecture et écriture et utiliser ensuite la méthode set() de la classe ConfigParser afin de pouvoir définir et ajouter de nouvelles options à la section.
Exemple. Ajout d'une section nommée mysqld
Après exécution du code, vous verrez une nouvelle section [mysqld] qui s'ajoute au fichier configuration.ini:
Younes Derfoufi
CRMEF OUJDA
2 thoughts on “Python et les fichiers de configuration .ini”