Texto de color impreso en Python
- Utilice los Códigos de Escape ANSI para imprimir texto de color en Python
-
Use el módulo
colorama
para imprimir el texto coloreado en Python
Este tutorial muestra cómo generar texto de color cuando se imprime en Python.
La única manera de manipular la consola de la línea de comando usando la entrada es usando ANSI Escape Codes. Estos códigos pueden manipular las funciones de la consola, como el color del texto o del fondo, la configuración del cursor, las fuentes y otros elementos modificables dentro de la consola.
Utilice los Códigos de Escape ANSI para imprimir texto de color en Python
Primero, declaremos una clase de Python que nos da unos cuantos códigos ANSI que representan colores con los que podemos trabajar.
class bcolors:
OK = "\033[92m" # GREEN
WARNING = "\033[93m" # YELLOW
FAIL = "\033[91m" # RED
RESET = "\033[0m" # RESET COLOR
3 de estas variables son Código ANSI real para los colores, mientras que la variable “RESET” está ahí para devolver el color al valor por defecto.
La función print()
da salida al argumento de la cadena en la consola de la línea de comandos.
Si quiere que la salida de print()
sea coloreada, tendría que insertar código ANSI dentro de la cadena que puede manipular la consola de la línea de comandos.
Usando la clase bcolors
, imprimiremos 3 líneas diferentes con diferentes colores.
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)
Prefijamos la cadena con el color que quiere que refleje y la sufijamos con bcolors.RESET
para restablecer el color por defecto antes de la próxima vez que use print()
o la próxima vez que use la terminal.
Si está usando Python 3, también puede formatear su declaración print()
de esta manera:
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}")
Resultado:
Después de la salida de la última línea, el terminal volverá a su color por defecto debido a bcolors.RESET
. Si no lo pone al final de sus líneas, el texto dentro de la terminal será coloreado con el último color que puso dentro de print()
. En este caso, sería rojo.
Use el módulo colorama
para imprimir el texto coloreado en Python
El problema de ANSI es que podría no funcionar bien con el sistema operativo Windows, por lo que se necesitarían soluciones alternativas para que funcione en las consolas de Windows.
colorama
es un módulo Python que usa códigos de escape de ANSI. Este módulo también hace posible que ANSI sea compatible con Windows. La documentación explica cómo hicieron posible envolver el código ANSI para la compatibilidad con Windows.
Aquí hay una lista de los colores de primer plano disponibles de colorama
:
BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET
También tienen estilos, incluyendo un RESET_ALL
que reinicia todas las modificaciones actuales de ANSI, mientras que Fore.RESET
sólo reinicia el último ANSI.
DIM, NORMAL, BRIGHT, RESET_ALL
Primero, necesitamos instalar el colorama
ya que es una biblioteca creada por la comunidad. Podemos usar pip
o anaconda
para instalar esta dependencia.
- Para
pip
opip3
pip install colorama
pip3 install colorama //if you're using python3
- Para
anaconda
conda install -c anaconda colorama
Probaremos algunos de los colores y obtendremos varias líneas de diferentes colores y estilos. Usamos colorama.init()
para que estos ajustes funcionen en 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)
Resultado:
DIM
y BRIGHT
producirán diferentes tonos de color cuando se usen en el mismo color. RESET_ALL
restablece el color a su valor por defecto para que se establezca en otro color o lo deja de nuevo en el valor por defecto.
En resumen, la única manera de imprimir texto de color en Python es haciendo uso de los Códigos de Escape ANSI. Es la única manera de que la consola entienda las instrucciones de la declaración print()
de Python. Puede hacerlo manualmente incluyendo el código de escape real dentro de su print()
, o usar colorama
para envolver el código ANSI en un formato más legible.
Si desea obtener más opciones de colores para el código ANSI, hay muchos recursos en Internet para proporcionarlos, este artículo es un buen comienzo. También puedes dar formato al texto (negrita, subrayado, cursiva), cambiar el fondo de tu consola, y mucho más con el código 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