Comment changer la couleur du texte en Python ?

Article publié le et mis à jour le .

Comment changer la couleur du texte en Python ?

Comment afficher du texte en couleur en Python ?

Il existe de nombreux modules pour changer la couleur du texte (et du fond du texte) en Python. La plupart se base sur les codes de séquences d’échappement ANSI mais d’autres utilisent directement les couleurs du terminal.

Pour afficher du texte en couleur en Python, on utilise les codes ANSI :

print("\033[1;34mEssayez de changer 34 pour une autre valeur allant de 30 à 37.")

💡 Vous voulez en apprendre plus sur la fonction print en Python ? Alors mon article complet sur la fonction print vous intéressera sûrement !

Dans cet article, vous apprendrez ce qu’est ANSI, comment l’utiliser dans vos scripts en Python mais aussi quelles sont les alternatives pour afficher du texte en couleur facilement.

Commençons sans plus tarder avec l’explication de ANSI.

Utiliser les codes ANSI pour avoir du texte coloré en Python

Les codes ANSI ou Séquence d’échappement ANSI permettent de contrôler l’affichage de texte terminal.

Ces codes d’échappement permettent de faire énormement de chose allant de modifier la position du curseur à régler l’intensité de la couleur ou bien souligner, mettre son texte en italique et bien plus.

Dans cet article on se limite à voir comment on peut changer la couleur d’un texte en Python avec.

Voici une liste de tous les codes de couleurs ANSI avec leurs valeurs hexadécimales correspondantes :

Code ANSI Couleur Code hexadécimal
30 Noir
#000000
31 Rouge
#FF0000
32 Vert
#00FF00
33 Jaune
#FFFF00
34 Bleu
#0000FF
35 Rose
#FF00FF
36 Cyan
#00FFFF
37 Blanc
#FFFFFF

En Python, on peut utiliser les codes d’échappement ANSI pour changer la couleur du texte dans un terminal ou dans un fichier de configuration. On utilise le code \033[0;CODE_COULEUR_ANSIm avant le texte et \033[0m à la fin pour remettre la coueur par défaut.

À noter qu’il existe aussi des couleurs “light” qui sont plus lumineuses. On peut les obtenir en ajoutant ;1 après notre code couleur ANSI normal. Donc \033[0;31m devient \033[0;31m;1 pour être rouge flash.

Les couleurs plus claires ou pastelles possède également leur propre code, c’est le même que les codes ANSI des couleurs “normales” mais on ajoute + 60.

Code ANSI Couleur Code hexadécimal
90 Noir clair
#808080
91 Rouge clair
#FF8080
92 Vert clair
#80FF80
93 Jaune clair
#FFFF80
94 Bleu clair
#8080FF
95 Rose clair
#FF80FF
96 Cyan clair
#80FFFF
97 Blanc clair
#FFFFFF

Avec ANSI on peut aussi changer la couleur du fond.

Code ANSI Couleur Code hexadécimal
40 Noir
#000000
41 Rouge
#FF0000
42 Vert
#00FF00
43 Jaune
#FFFF00
44 Bleu
#0000FF
45 Rose
#FF00FF
46 Cyan
#00FFFF
47 Blanc
#FFFFFF

Ainsi, pour avoir du texte bleu sur un fond rouge (on vous juge pas pour vos goûts en matière de couleurs, promis 😛), on utilise :

print("\033[1;34;41mTexte BLEU sur fond ROUGE")

Le module colorma pour afficher du texte en couleur en Python

Pour utiliser les codes ANSI et changer la couleur de fond du texte dans un script Python, on peut utiliser le package colorama.

  1. Installer le module colorama avec pip :

pip install colorama

  1. Importer la bibliothèque dans votre script Python :

import colorama

  1. Utilisez les macros de colorama qui représentent les codes ANSI pour changer la couleur du texte. Par exemple, pour afficher du texte rouge avec un fond vert, on peut utiliser le code suivant :
print(colorama.Fore.RED + colorama.Back.GREEN + "Texte en rouge avec fond vert" + colorama.Style.RESET_ALL)

Pour changer la couleur du texte, on utilise Fore.COULEUR_DU_TEXTE, pour le fond du texte (background), on utilise Back.COULEUR_DE_FOND.

Voici les différentes couleurs qu’on peut utiliser, tant avec Fore qu’avec Back :

BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, LIGHTBLACK_EX, LIGHTRED_EX, LIGHTGREEN_EX, LIGHTYELLOW_EX, LIGHTBLUE_EX, LIGHTMAGENTA_EX, LIGHTCYAN_EX, LIGHTWHITE_EX, RESET

On peut utiliser les couleurs de base et changer l’intensité de la couleur avec l’option Style, voici les options disponibles :

Style: DIM, NORMAL, BRIGHT, RESET_ALL

N’oubliez pas d’utiliser RESET sur la couleur ou RESET_ALL sur le style pour revenir aux couleurs par défaut.

Vous pouvez aller bien plus loin avec colorama, comme on l’a vu, les codes ANSI permettent bien que modifier la couleur d’un texte.

Pour plus d’informations sur colorama, voici le lien vers la documentation sur Github.

Le module termcolor pour afficher du texte en couleur en Python

termcolor est un package Python qui permet de modifier la couleur et le style du texte dans le terminal.

Voici comment l’obtenir :

  1. Installer le module termcolor avec pip :

pip install termcolor

  1. Importer la termcolor dans votre script Python :

import termcolor

  1. Utilisez les fonctions et codes de termcolor pour changer la couleur du texte.
from termcolor import colored, cprint

# Afficher du texte en rouge avec la fonction colored
print(termcolor.colored("Texte en rouge en Python", "red"))

# Afficher du texte en bleu sur fond vert
termcolor.cprint("Texte bleu sur fond vert", "blue", "on_green")

Voici un tableau récapitulatif des différente options sur termcolor pour modifier la couleur du texte, la couleur du fond du texte (background) ou bien le style du texte.

Couleur du texte Couleur de fond Style
grey on_grey bold
red on_red dark
green on_green underline
yellow on_yellow blink
blue on_blue reverse
magenta on_magenta concealed
cyan on_cyan
white on_white

Vous trouverez plus d’options et d’informations sur la page github du projet termcolor

Le module colored pour afficher du texte en couleur en Python

colored est un package Python qui utilise les codes couleurs HEX des terminaux.

Il est différents des options qu’on a vues jusqu’à présent dans cet article car il n’utilise pas ANSI proposés de base mais bien des codes couleurs directement.

  1. Installer le module colored avec pip :

pip install colored

  1. Importer la biliothèque colored
import colored
  1. Afficher du texte en changeant la couleur, ici, rouge
print(f'{colored.fg(1)} Mon texte en rouge')

Voici une liste des différentes couleurs disponibles avec colored, comme vous pouvez le voir, on a accès à bien plus d’options 😅

Code Description
0 black
1 red
2 green
3 yellow
4 blue
5 magenta
6 cyan
7 light_gray
8 dark_gray
9 light_red
10 light_green
11 light_yellow
12 light_blue
13 light_magenta
14 light_cyan
15 white
16 grey_0
17 navy_blue
18 dark_blue
19 blue_3a
20 blue_3b
21 blue_1
22 dark_green
23 deep_sky_blue_4a
24 deep_sky_blue_4b
25 deep_sky_blue_4c
26 dodger_blue_3
27 dodger_blue_2
28 green_4
29 spring_green_4
30 turquoise_4
31 deep_sky_blue_3a
32 deep_sky_blue_3b
33 dodger_blue_1
34 green_3a
35 spring_green_3a
36 dark_cyan
37 light_sea_green
38 deep_sky_blue_2
39 deep_sky_blue_1
40 green_3b
41 spring_green_3b
42 spring_green_2a
43 cyan_3
44 dark_turquoise
45 turquoise_2
46 green_1
47 spring_green_2b
48 spring_green_1
49 medium_spring_green
50 cyan_2
51 cyan_1
52 dark_red_1
53 deep_pink_4a
54 purple_4a
55 purple_4b
56 purple_3
57 blue_violet
58 orange_4a
59 grey_37
60 medium_purple_4
61 slate_blue_3a
62 slate_blue_3b
63 royal_blue_1
64 chartreuse_4
65 dark_sea_green_4a
66 pale_turquoise_4
67 steel_blue
68 steel_blue_3
69 cornflower_blue
70 chartreuse_3a
71 dark_sea_green_4b
72 cadet_blue_2
73 cadet_blue_1
74 sky_blue_3
75 steel_blue_1a
76 chartreuse_3b
77 pale_green_3a
78 sea_green_3
79 aquamarine_3
80 medium_turquoise
81 steel_blue_1b
82 chartreuse_2a
83 sea_green_2
84 sea_green_1a
85 sea_green_1b
86 aquamarine_1a
87 dark_slate_gray_2
88 dark_red_2
89 deep_pink_4b
90 dark_magenta_1
91 dark_magenta_2
92 dark_violet_1a
93 purple_1a
94 orange_4b
95 light_pink_4
96 plum_4
97 medium_purple_3a
98 medium_purple_3b
99 slate_blue_1
100 yellow_4a
101 wheat_4
102 grey_53
103 light_slate_grey
104 medium_purple
105 light_slate_blue
106 yellow_4b
107 dark_olive_green_3a
108 dark_green_sea
109 light_sky_blue_3a
110 light_sky_blue_3b
111 sky_blue_2
112 chartreuse_2b
113 dark_olive_green_3b
114 pale_green_3b
115 dark_sea_green_3a
116 dark_slate_gray_3
117 sky_blue_1
118 chartreuse_1
119 light_green_2
120 light_green_3
121 pale_green_1a
122 aquamarine_1b
123 dark_slate_gray_1
124 red_3a
125 deep_pink_4c
126 medium_violet_red
127 magenta_3a
128 dark_violet_1b
129 purple_1b
130 dark_orange_3a
131 indian_red_1a
132 hot_pink_3a
133 medium_orchid_3
134 medium_orchid
135 medium_purple_2a
136 dark_goldenrod
137 light_salmon_3a
138 rosy_brown
139 grey_63
140 medium_purple_2b
141 medium_purple_1
142 gold_3a
143 dark_khaki
144 navajo_white_3
145 grey_69
146 light_steel_blue_3
147 light_steel_blue
148 yellow_3a
149 dark_olive_green_3
150 dark_sea_green_3b
151 dark_sea_green_2
152 light_cyan_3
153 light_sky_blue_1
154 green_yellow
155 dark_olive_green_2
156 pale_green_1b
157 dark_sea_green_5b
158 dark_sea_green_5a
159 pale_turquoise_1
160 red_3b
161 deep_pink_3a
162 deep_pink_3b
163 magenta_3b
164 magenta_3c
165 magenta_2a
166 dark_orange_3b
167 indian_red_1b
168 hot_pink_3b
169 hot_pink_2
170 orchid
171 medium_orchid_1a
172 orange_3
173 light_salmon_3b
174 light_pink_3
175 pink_3
176 plum_3
177 violet
178 gold_3b
179 light_goldenrod_3
180 tan
181 misty_rose_3
182 thistle_3
183 plum_2
184 yellow_3b
185 khaki_3
186 light_goldenrod_2a
187 light_yellow_3
188 grey_84
189 light_steel_blue_1
190 yellow_2
191 dark_olive_green_1a
192 dark_olive_green_1b
193 dark_sea_green_1
194 honeydew_2
195 light_cyan_1
196 red_1
197 deep_pink_2
198 deep_pink_1a
199 deep_pink_1b
200 magenta_2b
201 magenta_1
202 orange_red_1
203 indian_red_1c
204 indian_red_1d
205 hot_pink_1a
206 hot_pink_1b
207 medium_orchid_1b
208 dark_orange
209 salmon_1
210 light_coral
211 pale_violet_red_1
212 orchid_2
213 orchid_1
214 orange_1
215 sandy_brown
216 light_salmon_1
217 light_pink_1
218 pink_1
219 plum_1
220 gold_1
221 light_goldenrod_2b
222 light_goldenrod_2c
223 navajo_white_1
224 misty_rose1
225 thistle_1
226 yellow_1
227 light_goldenrod_1
228 khaki_1
229 wheat_1
230 cornsilk_1
231 grey_100
232 grey_3
233 grey_7
234 grey_11
235 grey_15
236 grey_19
237 grey_23
238 grey_27
239 grey_30
240 grey_35
241 grey_39
242 grey_42
243 grey_46
244 grey_50
245 grey_54
246 grey_58
247 grey_62
248 grey_66
249 grey_70
250 grey_74
251 grey_78
252 grey_82
253 grey_85
254 grey_89
255 grey_93
256 default

Vous pouvez en apprendre plus sur la page pip du projet colored directement.

Comment afficher du texte en noir en Python ?

Avec ANSI

print("\033[0;30m Mon texte en noir")

Avec colorama

print(Fore.BLACK + "Mon texte en noir")

Avec termcolor

cprint("Texte en noir", "black")

Avec colored

print(f'{colored.fg(0)} Mon texte en noir')

Comment afficher du texte en rouge en Python ?

Avec ANSI

 print("\033[0;33m Mon texte en rouge")

Avec colorama

print(colorama.Fore.RED + "Mon texte en rouge")

Avec termcolor

cprint("Texte en rouge", "red")

Avec colored

print(f'{colored.fg(1)} Mon texte en rouge')

Comment afficher du texte en vert en Python ?

Avec ANSI

print("\033[0;32m Mon texte en vert")

Avec colorama

print(colorama.Fore.GREEN + "Mon texte en vert")

Avec termcolor

cprint("Texte en vert", "green")

Avec colored

print(f'{colored.fg(2)} Mon texte en vert')

Comment afficher du texte en bleu en Python ?

Avec ANSI

print("\033[0;34m Mon texte en bleu")

Avec colorama

print(colorama.Fore.BLUE + "Mon texte en bleu")

Avec termcolor

cprint("Texte en bleu", "blue")

Avec colored

print(f'{colored.fg(4))} Mon texte en bleu')

Comment afficher du texte en rose en Python ?

Avec ANSI

print("\033[0;35m Mon texte en rose")

Avec colorama

print(colorama.Fore.MAGENTA + "Mon texte en rose")

Avec termcolor

cprint("Texte en rose/magenta", "magenta")

Avec colored

print(f'{colored.fg(5)} Mon texte en rose')

Comment afficher du texte en cyan en Python ?

Avec ANSI

print("\033[0;36m Mon texte en cyan")

Avec colorama

print(colorama.Fore.CYAN + "Mon texte en cyan")

Avec termcolor

cprint("Texte en cyan", "cyan")

Avec colored

print(f'{colored.fg(6)} Mon texte en cyan')

Comment afficher du texte en jaune en Python ?

Avec ANSI

print("\033[1;33m Mon texte en jaune")

Avec colorama

print(colorama.Fore.YELLOW + "Mon texte en jaune")

Avec termcolor

cprint("Texte en jaune", "yellow")

Avec colored

print(f'{colored.fg(3)} Mon texte en jaune')

Aller plus loin avec les couleurs en Python !

Bravo 🎉 Vous savez maintenant comment ajouter de la couleur à votre code en Python. Tous ces codes couleurs permettent de modifier les couleurs du texte que vous affichez en console ainsi que la couleur de fond et le style de fond.

Si vous avez aimé ce guide sur les couleurs en Python, vous trouverez d’autres articles sur Python.

Et vous aimerez sûrement les articles suivants :

Comment copier dans le presse-papiers en python ?

Comment calculer puissance d’un nombre en python ?

Comment utiliser if else sur une ligne en python ? (ternaire)