Le module Rich est un outil puissant pour ceux qui souhaitent améliorer l'affichage de leurs programmes Python dans la console. Ce module vous permet de rendre vos sorties plus lisibles et esthétiques en ajoutant des couleurs, des tableaux, des barres de progression, des arbres de dossiers, et bien plus encore. Dans cet article, nous allons explorer quelques-unes des fonctionnalités de base que vous pouvez utiliser avec la fonction print().
Avant de commencer, vous devez installer le module Rich.
Allez dans le menu Outils/Gérer les paquets, cherchez "rich" et installer le paquet.
L'affichage des couleurs n'est pas pris en charge par la console de Thonny. Il faudra exécuter vos programmes dans une console système (CTRL-T).
Vous pouvez l'installer facilement via pip :
pip install rich
Une fois installé, vous pouvez commencer à utiliser les fonctionnalités de Rich dans vos scripts Python.
Le module est facilement installable depuis le package manager.
print()L'un des principaux avantages de Rich est sa compatibilité avec la fonction print(). Contrairement à la fonction print() standard de Python, Rich permet de formater facilement le texte, de le colorier et de l'organiser en tableaux.
Pour commencer, voyons comment afficher du texte en couleur. Avec Rich, c'est aussi simple que d'utiliser la fonction print() :
from rich import print
print("[bold red]Ceci est un texte en rouge gras[/bold red]")
Dans cet exemple, le texte "Ceci est un texte en rouge gras" sera affiché en rouge et en gras. Le module Rich utilise des balises similaires à celles de HTML pour définir le formatage du texte.
Voici une liste des principales couleurs disponibles avec le module Rich, que vous pouvez utiliser pour styliser le texte dans vos sorties console :
Rich vous permet également d'ajouter plusieurs styles à votre texte. Vous pouvez combiner des couleurs, du gras, de l'italique, du souligné, etc.
print("[italic blue]Texte en bleu et italique[/italic blue]")
print("[underline green]Texte en vert souligné[/underline green]")
print("[bold italic yellow]Texte en jaune gras et italique[/bold italic yellow]")
Ces options sont idéales pour mettre en évidence des parties spécifiques de vos sorties.
L'une des fonctionnalités les plus intéressantes de Rich est la possibilité d'afficher des tableaux. Ceci est particulièrement utile pour afficher des données structurées.
from rich.table import Table
table = Table(title="Résultats des Étudiants")
table.add_column("Nom", justify="right", style="cyan", no_wrap=True)
table.add_column("Age", justify="right", style="magenta")
table.add_column("Moyenne", justify="right", style="green")
table.add_row("Alice", "21", "14.5")
table.add_row("Bob", "22", "16.0")
table.add_row("Charlie", "20", "13.8")
print(table)
Ce code créera un tableau stylisé avec des colonnes "Nom", "Age", et "Moyenne", chacune ayant sa propre couleur. Le tableau sera automatiquement ajusté pour être bien lisible dans la console.
Il est facile de personnaliser vos couleurs et styles en fonction des valeurs que afficher.
Il suffit de créer une variable style et de l'utiliser dans une f-string:
from rich.table import Table
from rich import print
# Création d'un tableau avec du style conditionnel
table = Table(title="Scores avec Mise en Évidence")
table.add_column("Nom", style="cyan")
table.add_column("Score", style="magenta")
# Ajouter des lignes avec mise en évidence conditionnelle
scores = [("Alice", 85), ("Bob", 92), ("Charlie", 58), ("Dave", 88)]
for name, score in scores:
if score >= 90:
style = "bold green"
elif score < 60:
style = "bold red"
else:
style = "white"
table.add_row(name, f"[{style}]{score}[/{style}]")
print(table)
Il est tout à fait possible d'encadrer du texte avec le module Rich. Pour cela, vous pouvez utiliser la classe Panel qui permet d'afficher du texte ou même d'autres objets Rich (comme des tableaux, des arbres, etc.) à l'intérieur d'un encadré, avec des bordures personnalisables.
Voici un exemple simple où l'on encadre du texte avec un Panel :
from rich import print
from rich.panel import Panel
# Création d'un texte encadré
encadre = Panel("Ceci est un texte encadré")
# Affichage du texte encadré
print(encadre)
Vous pouvez changer la couleur de la bordure grâce au paramètre boder_style:
from rich import print
from rich.panel import Panel
# Création d'un texte encadré avec un titre
encadre = Panel("Ceci est un texte encadré", border_style="green")
# Affichage du texte encadré
print(encadre)
Voici un exemple où l'on ajoute un titre au texte avec un Panel :
from rich import print
from rich.panel import Panel
# Création d'un texte encadré avec un titre
encadre = Panel("Ceci est un texte encadré", title="Encadré", border_style="green")
# Affichage du texte encadré
print(encadre)
PanelLe Panel offre plusieurs options pour personnaliser l'encadrement :
title : Permet d'ajouter un titre au-dessus du panel.border_style : Définit la couleur des bordures.padding : Définit l'espacement intérieur entre le texte et les bordures du panel.expand : Si True, le panel occupera toute la largeur disponible de la console.subtitle : Ajoute un sous-titre en bas du panel.from rich import print
from rich.panel import Panel
# Création d'un texte encadré
encadre = Panel(
"Voici un texte important avec un encadrement stylisé.",
title="Encadré Principal",
border_style="bold red",
expand=False
)
# Affichage du texte encadré
print(encadre)
Ces exemples montrent comment vous pouvez utiliser Panel pour encadrer du texte ou d'autres éléments, en ajoutant ainsi une touche esthétique et organisée à vos sorties dans la console. Cette fonctionnalité est particulièrement utile pour mettre en avant des informations importantes ou pour structurer des interfaces en ligne de commande plus complexes.
Rich facilite également l'affichage de barres de progression, ce qui est très utile pour indiquer l'avancement de certaines tâches.
from rich.progress import track
import time
for step in track(range(10), description="Traitement..."):
time.sleep(0.1)
Ici, la fonction track() de Rich enveloppe une boucle pour afficher une barre de progression pendant que la boucle s'exécute. Cela permet de donner un retour visuel immédiat sur la progression d'une tâche.
Le module Rich est un outil formidable pour tous ceux qui cherchent à améliorer l'affichage de leurs programmes Python dans la console. En utilisant Rich avec la fonction print(), vous pouvez facilement ajouter des couleurs, des styles, des tableaux, des barres de progression, et bien plus encore à vos sorties. Ces fonctionnalités permettent de rendre vos programmes non seulement plus esthétiques mais aussi plus lisibles et compréhensibles.
En explorant plus en profondeur les possibilités offertes par Rich, vous pouvez améliorer significativement l'expérience utilisateur de vos scripts Python. Alors, n'hésitez pas à l'essayer dans vos prochains projets !
Pour aller plus loin, voici quelques ressources utiles pour apprendre à utiliser le module Rich :
Essayez ces fonctionnalités dans vos projets et vous verrez combien elles peuvent transformer l'affichage de vos scripts Python!
Vous allez recréer une version simplifiée et colorée de votre fiche personnage D&D à l'aide de Rich:
╔═══════════════════╗
║ Votre personnage: ║
╚═══════════════════╝
- Nom: Prof
- Race: Humain
- Classe: Guerrier
- Points d'XP: 450
- Niveau: 2
- Objet Magique: Excalibur
╔═══════════════════╗
║ Caractéristiques: ║
╚═══════════════════╝
- Force: 10
- Dextérité: 18
- Constitution: 17
BONUS: +3
- Intelligence: 6
- Sagesse: 19
- Charisme: 13
- Points de vie: 13