Testo colorato con stampa python

Rayven Esplanada 22 giugno 2021
  1. Usa codici di escape ANSI per stampare testo colorato in Python
  2. Usa il modulo colorama per stampare testo colorato in Python
Testo colorato con stampa 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:

Output di testo colorato in Python

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

Output di testo colorato in Python con colorma

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.

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

Articolo correlato - Python Print