Texte en couleur imprimé en Python
- Utiliser les codes d’échappement ANSI pour imprimer du texte en couleur en Python
-
Utilisez le module
colorama
pour imprimer du texte coloré en Python
Ce tutoriel vous montre comment générer du texte coloré lorsque vous imprimez en Python.
La seule façon de manipuler la console de ligne de commande en utilisant des entrées est d’utiliser ANSI Escape Codes. Ces codes permettent de manipuler les fonctions de la console, telles que la couleur du texte ou de l’arrière-plan, les paramètres du curseur, les polices et autres éléments modifiables de la console.
Utiliser les codes d’échappement ANSI pour imprimer du texte en couleur en Python
Tout d’abord, déclarons une classe Python qui nous donne quelques codes ANSI représentant des couleurs avec lesquelles nous pouvons travailler.
class bcolors:
OK = "\033[92m" # GREEN
WARNING = "\033[93m" # YELLOW
FAIL = "\033[91m" # RED
RESET = "\033[0m" # RESET COLOR
3 de ces variables sont le code ANSI réel pour les couleurs, tandis que la variable RESET
est là pour remettre la couleur à sa valeur par défaut.
La fonction print()
produit une chaîne de caractères en argument sur la console de ligne de commande.
Si vous voulez que la sortie de print()
soit colorée, vous devez insérer un code ANSI dans la chaîne qui peut manipuler la console de ligne de commande.
En utilisant la classe bcolors
, nous imprimerons 3 lignes différentes avec des couleurs différentes.
print(bcolors.OK + "File Saved Successfully!" + bcolors.RESET)
print(bcolors.WARNING + "Warning: Are you sure you want to continue?" + bcolors.RESET)
print(bcolors.FAIL + "Unable to delete record." + bcolors.RESET)
Nous préfixons la chaîne avec la couleur que vous voulez qu’elle reflète et nous la suffixons avec bcolors.RESET
pour réinitialiser la couleur par défaut avant la prochaine utilisation de print()
ou la prochaine utilisation du terminal.
Si vous utilisez Python 3, vous pouvez également formater votre instruction print()
comme ceci :
print(f"{bcolors.OK}File Saved Successfully!{bcolors.RESET}")
print(f"{bcolors.WARNING}Warning: Are you sure you want to continue?{bcolors.RESET}")
print(f"{bcolors.FAIL}Unable to delete record.{bcolors.RESET}")
Production:
Après la sortie de la dernière ligne, le terminal sera réinitialisé à sa couleur par défaut grâce à bcolors.RESET
. Si vous ne le mettez pas à la fin de vos lignes, le texte à l’intérieur du terminal sera coloré de la dernière couleur que vous avez définie dans print()
. Dans ce cas, il sera rouge.
Utilisez le module colorama
pour imprimer du texte coloré en Python
Le problème de l’ANSI est qu’il pourrait ne pas fonctionner correctement avec le système d’exploitation Windows, il faudrait donc trouver des solutions de contournement pour le faire fonctionner avec les consoles Windows.
colorama
est un module Python qui utilise les codes d’échappement ANSI. Ce module permet également à l’ANSI d’être compatible avec Windows. La documentation explique comment ils ont permis d’envelopper le code ANSI pour la compatibilité avec Windows.
Voici une liste des couleurs de premier plan disponibles pour le colorama
:
BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET
Ils ont aussi des styles, dont un RESET_ALL
qui réinitialise toutes les modifications ANSI actuelles, alors que Fore.RESET
ne réinitialise que la dernière ANSI.
DIM, NORMAL, BRIGHT, RESET_ALL
Tout d’abord, nous devons installer le colorama
car c’est une bibliothèque créée par la communauté. Nous pouvons utiliser soit pip
soit anaconda
pour installer cette dépendance.
- Pour
pip
oupip3
pip install colorama
pip3 install colorama //if you're using python3
- Pour
anaconda
conda install -c anaconda colorama
Nous allons essayer certaines des couleurs et sortir plusieurs lignes de couleurs et de styles différents. Nous utilisons colorama.init()
pour faire fonctionner ces paramètres pour Windows.
import colorama
from colorama import Fore
from colorama import Style
colorama.init()
print(Fore.BLUE + Style.BRIGHT + "This is the color of the sky" + Style.RESET_ALL)
print(Fore.GREEN + "This is the color of grass" + Style.RESET_ALL)
print(Fore.BLUE + Style.DIM + "This is a dimmer version of the sky" + Style.RESET_ALL)
print(Fore.YELLOW + "This is the color of the sun" + Style.RESET_ALL)
Production:
DIM
et BRIGHT
produisent des couleurs différentes lorsqu’elles sont utilisées sur une même couleur. RESET_ALL
réinitialise la couleur par défaut pour la mettre dans une autre couleur ou la laisser dans la valeur par défaut.
En résumé, la seule façon d’imprimer du texte coloré en Python est d’utiliser les codes d’échappement ANSI. C’est la seule façon pour la console de comprendre les instructions de l’instruction print()
de Python. Vous pouvez le faire manuellement en incluant le code d’échappement réel dans votre print()
, ou utiliser colorama
pour envelopper le code ANSI dans un format plus lisible.
Si vous souhaitez obtenir plus d’options pour les couleurs du code ANSI, il existe de nombreuses ressources sur Internet pour les fournir, cet article est un bon début. Vous pouvez également formater le texte (gras, souligné, italique), changer l’arrière-plan de votre console, et bien plus encore avec le code ANSI.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn