L'utilisation de fichiers de configuration est une pratique courante pour stocker des paramètres d'application, des identifiants de connexion et d'autres données sensibles, séparant ainsi ces informations du code source principal. Python offre plusieurs formats de fichiers de configuration, chacun avec ses avantages et sa syntaxe.
- Le format INI
Les fichiers .ini sont des fichiers d'initialisation traditionnellement utilisés sous Windows. Ils sont structurés en sections, clés et valeurs.
Structure d'un fichier INI Un fichier INI typique se présente comme suit :
; Fichier de configuration pour la base de données MySQL
[mysql]
host = 127.0.0.1
port = 3306
user = root
password = secretpassword
database = mydatabase
Lecture d'un fichier INI avec Python Le module stnadard configparser permet de lire et d'écrire des fichiers INI.
from configparser import ConfigParser
from pprint import pprint
# Chemin vers le fichier INI
ini_filepath = "config.ini"
# Section à lire
section_name = "mysql"
# Initialisation du parseur
config_parser = ConfigParser()
# Lecture du fichier
config_parser.read(ini_filepath)
# Récupération des éléments de la section sous forme de dictionnaire
db_settings = dict(config_parser.items(section_name))
# Affichage des paramètres lus
pprint(db_settings)
# Exemple d'utilisation : connexion à une base de données (nécessite mysql.connector)
# import mysql.connector
# connection = mysql.connector.connect(**db_settings)
# connection.close()
- Le format JSON
JSON (JavaScript Object Notation) est un format léger d'échange de données, facile à lire pour les humains et facile à analyesr pour les machines.
Structure d'un fichier JSON Un fichier JSON utilise une structure clé-valeur, similaire aux dictionnaires Python.
{
"mysql": {
"host": "127.0.0.1",
"port": 3306,
"user": "root",
"password": "secretpassword",
"database": "mydatabase"
}
}
Lecture d'un fichier JSON avec Python Le module standard json est utilisé pour manipuler les données JSON.
import json
from pprint import pprint
# Chemin vers le fichier JSON
json_filepath = "config.json"
# Clé pour accéder aux paramètres de la base de données
db_key = "mysql"
# Lecture du fichier JSON
with open(json_filepath, 'r', encoding='utf-8') as f:
configurations = json.load(f)
# Accès aux paramètres spécifiques
db_settings = configurations[db_key]
# Affichage des paramètres lus
pprint(db_settings)
# Exemple d'utilisation : connexion à une base de données
# import mysql.connector
# connection = mysql.connector.connect(**db_settings)
# connection.close()
- Le format TOML
TOML (Tom's Obvious, Minimal Language) est un format de fichier de configuration conçu pour être facile à lire grâce à une sémantique claire.
Structure d'un fichier TOML TOML utilise une syntaxe simple avec des sections, des clés et des valeurs, supportant divers types de données.
# Fichier de configuration db.toml
[database]
server = "192.168.1.100"
ports = [ 8001, 8001, 8002 ]
enabled = true
[database.connection]
user = "admin"
password = "securepassword"
[database.metadata]
version = "1.0"
Lecture d'un fichier TOML avec Python Une bibliothèque externe, toml, est nécessaire pour parser les fichiers TOML.
pip install toml
import toml
from pprint import pprint
# Chemin vers le fichier TOML
toml_filepath = "config.toml"
# Lecture du fichier TOML
with open(toml_filepath, 'r', encoding='utf-8') as f:
configurations = toml.load(f)
# Affichage de toute la configuration
pprint(configurations)
# Accès aux paramètres spécifiques (exemple)
# db_server = configurations["database"]["server"]
# db_user = configurations["database"]["connection"]["user"]
- Le format YAML
YAML (YAML Ain't Markup Language) est un format de sérialisation de données lisible par l'homme, souvent utilisé pour les fichiers de configuration.
Structure d'un fichier YAML YAML utilise l'indentation pour représenter la structure des données, rendant les fichiers très lisibles.
# Fichier de configuration db.yaml
database:
server: "192.168.1.100"
ports:
- 8001
- 8001
- 8002
enabled: true
connection:
user: "admin"
password: "securepassword"
metadata:
version: "1.0"
Lecture d'un fichier YAML avec Python La bibliothèque externe PyYAML est couramment utilisée pour travailler avec YAML.
pip install pyyaml
import yaml
from pprint import pprint
# Chemin vers le fichier YAML
yaml_filepath = "config.yaml"
# Lecture sécurisée du fichier YAML
with open(yaml_filepath, 'r', encoding='utf-8') as f:
configurations = yaml.safe_load(f)
# Affichage de toute la configuration
pprint(configurations)
# Accès aux paramètres spécifiques (exemple)
# db_server = configurations["database"]["server"]
# db_user = configurations["database"]["connection"]["user"]
Ces différents formats offrent des alternatives pour la gestion des configurations, permettant de choisir celui qui convient le mieux aux besoins du projet en termes de lisibilité et de complexité.