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
.
- Installer le module
colorama
avecpip
:
pip install colorama
- Importer la bibliothèque dans votre script Python :
import colorama
- 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 :
- Installer le module
termcolor
avecpip
:
pip install termcolor
- Importer la termcolor dans votre script Python :
import termcolor
- 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.
- Installer le module
colored
avecpip
:
pip install colored
- Importer la biliothèque
colored
import colored
- 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)
Je m'appelle Thomas, et je code depuis plus de 20 ans. Depuis ma sortie de la première promotion de l'École 42, j'ai conçu et développé des centaines d'applications et de sites web. Sur ce blog, je partage avec vous les stratégies les plus efficaces pour maîtriser l'art de coder et progresser rapidement.