Texte en couleur imprimé en Python

Rayven Esplanada 30 janvier 2023
  1. Utiliser les codes d’échappement ANSI pour imprimer du texte en couleur en Python
  2. Utilisez le module colorama pour imprimer du texte coloré en Python
Texte en couleur imprimé 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:

Sortie de texte en couleur en Python

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 ou pip3
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:

Texte coloré en Python avec colorma

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.

Rayven Esplanada avatar Rayven Esplanada avatar

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

Article connexe - Python Print