Texto de color impreso en Python

Rayven Esplanada 30 enero 2023
  1. Utilice los Códigos de Escape ANSI para imprimir texto de color en Python
  2. Use el módulo colorama para imprimir el texto coloreado en Python
Texto de color impreso 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:

Salida de texto de color Python

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

Salida de texto coloreado en Python con colorma

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.

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

Artículo relacionado - Python Print