Testo colorato con stampa python
- Usa codici di escape ANSI per stampare testo colorato in Python
-
Usa il modulo
colorama
per stampare testo colorato in Python
Questo tutorial mostra come generare testo colorato quando stampi in Python.
L’unico modo per manipolare la console della linea di comando utilizzando l’input è utilizzare ANSI Escape Codes. Questi codici possono manipolare le funzioni della console, come il colore del testo o dello sfondo, le impostazioni del cursore, i caratteri e altri elementi modificabili all’interno della console.
Usa codici di escape ANSI per stampare testo colorato in Python
Per prima cosa, dichiariamo una classe Python che ci fornisce un po’ di codice ANSI che rappresenta i colori con cui possiamo lavorare.
class bcolors:
OK = "\033[92m" # GREEN
WARNING = "\033[93m" # YELLOW
FAIL = "\033[91m" # RED
RESET = "\033[0m" # RESET COLOR
3 di queste variabili sono codice ANSI effettivo per i colori, mentre la variabile RESET
serve per riportare il colore al valore predefinito.
La funzione print()
restituisce l’argomento della stringa sulla console della linea di comando.
Se vuoi che l’output di print()
sia colorato, dovresti inserire codice ANSI all’interno della stringa che può manipolare la console della linea di comando.
Usando la classe bcolors
, stamperemo 3 linee differenti con colori differenti.
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)
Aggiungiamo il prefisso alla stringa con il colore che vuoi che rifletta e aggiungiamo il suffisso bcolors.RESET
per ripristinare il colore predefinito prima della prossima volta che usi print()
o la prossima volta che usi il terminale.
Se stai usando Python 3, puoi anche formattare la tua istruzione print()
in questo modo:
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}")
Produzione:
Dopo aver emesso l’ultima linea, il terminale verrà ripristinato al suo colore predefinito a causa di bcolors.RESET
. Se non lo metti alla fine delle tue righe, il testo all’interno del terminale sarà colorato dell’ultimo colore che hai impostato in print()
. In questo caso, sarebbe rosso.
Usa il modulo colorama
per stampare testo colorato in Python
Il problema di ANSI è che potrebbe non funzionare bene con il sistema operativo Windows, quindi avresti bisogno di soluzioni alternative per farlo funzionare nelle console Windows.
colorama
è un modulo Python che utilizza codici di escape ANSI. Questo modulo rende anche possibile che ANSI sia compatibile con Windows. La documentazione spiega come hanno reso possibile il wrapping del codice ANSI per la compatibilità con Windows.
Ecco una lista dei colori di primo piano colorama
disponibili:
BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET
Hanno anche stili, incluso un RESET_ALL
che resetta tutte le modifiche ANSI correnti, mentre Fore.RESET
resetta solo l’ultimo ANSI.
DIM, NORMAL, BRIGHT, RESET_ALL
Per prima cosa, dobbiamo installare il colorama
in quanto è una libreria creata dalla comunità. Possiamo usare pip
o anaconda
per installare questa dipendenza.
- Per
pip
opip3
pip install colorama
pip3 install colorama //if you're using python3
- Per
anaconda
conda install -c anaconda colorama
Proveremo alcuni dei colori e produrremo diverse linee di diversi colori e stili. Usiamo colorama.init()
per far funzionare queste impostazioni per 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)
Produzione:
DIM
e BRIGHT
produrranno diverse sfumature di colore se usati sullo stesso colore. RESET_ALL
ripristina il colore predefinito per essere impostato su un altro colore o lasciarlo al valore predefinito.
In sintesi, l’unico modo per stampare del testo colorato in Python è usare i codici di escape ANSI. È l’unico modo per la console di comprendere le istruzioni dall’istruzione print()
di Python. Puoi farlo manualmente includendo l’effettivo codice di escape all’interno del tuo print()
, oppure usa colorama
per racchiudere il codice ANSI in un formato più leggibile.
Se vuoi ottenere più opzioni per i colori del codice ANSI, ci sono molte risorse su Internet per fornirle, questo articolo è un buon inizio. Puoi anche formattare il testo (grassetto, sottolineato, corsivo), cambiare lo sfondo della console e molto altro con il codice 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