Table des matières
Mise en couleur dans le terminal avec Rich
Pourquoi améliorer l'affichage dans un terminal ?
Lorsque notre station de jardin renvoie des données météo (température, humidité, pression…), il est utile d'avoir un affichage lisible et coloré pour mieux distinguer les différentes mesures. Jusqu'ici, nous utilisions des codes ANSI pour ajouter un peu de couleur dans le terminal.
Mais pour un rendu plus propre, lisible, personnalisable et moderne, la bibliothèque rich est une excellente alternative.
Couleurs ANSI vs Rich
🧱 ANSI (codes couleurs bruts) | 🌈 Rich (interface haut niveau) |
———————————- | ———————————————————– |
Utilise des codes comme `\033[91m` | Utilise des noms lisibles : `“red”`, `“green”`, `“cyan”`… |
Peu de contrôle sur le style | Affichage centré, aligné, stylisé facilement |
Difficile à maintenir et à lire | Code clair, moderne, accessible |
8 à 16 couleurs de base | Plus de 140 couleurs disponibles |
Pas d'affichage enrichi | Icônes, tableaux, mise en page possible |
Liste de couleurs Rich utiles
Voici quelques couleurs bien contrastées à utiliser dans un terminal (parmi les 140 disponibles) :
-
red
-
green
-
blue
-
yellow
-
magenta
-
cyan
-
white
-
black
-
orange1
-
violet
-
deep_sky_blue1
-
spring_green2
-
dark_orange3
-
turquoise2
-
light_salmon1
-
chartreuse2
-
sky_blue1
-
gold3
-
plum4
-
aquamarine1
-
medium_violet_red
-
khaki1
-
grey50
⚠️ Certaines couleurs ne sont visibles correctement que sur les terminaux qui supportent le mode 256 couleurs.
Installation de la bibliothèque Rich
pip install rich
Initialisation de Rich
from rich.console import Console from rich.text import Text
-
Console est l'outil de base de la bibliothèque Rich. C’est lui qui gère l’affichage dans le terminal.
-
Text permet de styliser dynamiquement des portions de texte dans une même ligne (gras, italique, souligné…).
Création de l'objet console :
console = Console()
Cette ligne permet de créer un objet console qui va gérer l'affichage dans le terminal. C’est avec cet objet qu’on peut utiliser toutes les fonctions de rich.
Affichage des données
console.print(f"[bold cyan]Date et heure :[/bold cyan] {date_heure}") console.print(f"[bold red]Température :[/bold red] {round(temperature, 1)}°C") console.print(f"[bold blue]Humidité :[/bold blue] {round(humidity, 1)}%") console.print(f"[bold magenta]Point de rosée :[/bold magenta] {round(point_de_rosee, 1)}°C") console.print(f"[bold yellow]Humidex :[/bold yellow] {round(humidex, 1)}") console.print(f"[bold green]Pression atmosphérique :[/bold green] {round(pression, 2)} hPa") console.print(f"[bold navajo_white1]Capteur d'humidité du sol 1 (tension) :[/bold navajo_white1 {round(capteur_humidite_1.voltage, 2)} V") console.print(f"[bold gold3]Capteur d'humidité du sol 1 (valeur brute) :[/bold gold3] {round(capteur_humidite_1.value, 2)}")
console.print(…) : méthode principale pour afficher du texte enrichi (couleur, gras, emoji…).
[bold red]Température :[/bold red] : indique que le mot “Température :” sera affiché en rouge gras.