Actualizado el 01/04/2022.
Colorama es una librería de Python que permite imprimir textos en colores en la salida de la terminal o consola, incluyendo el fondo o estilo del texto, en múltiples plataformas. En la mayoría de las terminales el módulo utiliza internamente las secuencias de escape ANSI o bien las funciones de la API del sistema en Windows para obtener el mismo resultado (¡pero el usuario no debe preocuparse por eso!). He aquí una vista previa (tomada del proyecto en GitHub) de lo que puede lograrse con esta herramienta:
Descarga e instalación
Colorama no tiene dependencias y está escrito completamente en Python, por lo que su instalación es muy sencilla vía la herramienta pip:
python -m pip install colorama
¡Eso es todo! Como alternativa a pip, también puedes descargar el código de fuente en archivo ZIP desde su página en PyPI. Una vez extraído, simplemente:
python setup.py install
Ejemplos
Antes de imprimir cualquier texto, es necesario inicializar colorama llamado a la función init()
:
from colorama import init init()
Internamente, el módulo reemplaza la salida estándar, stdout
y stderr
, para poder convertir las secuencias de escape ANSI en llamadas a la API de Windows y así lograr el soporte multiplataforma.
Para cambiar el color del texto, se utiliza una de las constantes colorama.Fore.*
. Por el ejemplo, el siguiente código imprime «Recursos Python» en color verde.
from colorama import Fore, init init() print(Fore.GREEN + "Recursos Python")
He aquí la vista previa en Windows y CentOS, respectivamente:
Para cambiar el fondo, análogamente utilizamos las constantes colorama.Back.*
.
from colorama import Back, init init() print(Back.RED + "Recursos Python")
También pueden ser utilizados simultáneamente:
from colorama import Back, Fore, init init() print(Back.RED + Fore.GREEN + "Recursos Python")
Los colores disponibles para las constantes Back
y Fore
son los siguientes:
BLACK
RED
GREEN
YELLOW
BLUE
MAGENTA
CYAN
WHITE
Nótese que el efecto (color de texto y fondo) se mantiene para las siguientes impresiones.
print(Back.RED + Fore.GREEN + "Recursos Python") print("Este texto mantiene el efecto anterior.")
Para regresar a los colores por defecto, utilícese las constantes Back.RESET
(para el fondo) y Fore.RESET
(para el texto).
# Después de las líneas anteriores. print(Back.RESET + Fore.RESET + "Este texto es normal.")
Si quieres que los colores vuelvan a su estado original luego de cada mensaje (para evitar usar constantemente RESET
) puedes indicárselo a Colorama al inicializar.
init(autoreset=True)
Además, puedes controlar la intensidad del texto (intensidad baja, normal o alta).
from colorama import Style, init init() print(Style.DIM + "Recursos Python") print(Style.NORMAL + "Recursos Python") print(Style.BRIGHT + "Recursos Python")
(En Windows, Style.DIM
es igual a Style.NORMAL
)
Style.RESET_ALL
puede emplearse para regresar todos los estilos a la normalidad.
Todos los efectos anteriores pueden combinarse, por ejemplo:
print(Style.BRIGHT + "Recursos", Style.RESET_ALL + Fore.GREEN + "Python")
En el archivo ZIP del código de fuente encontrarás más ejemplo dentro de la carpeta demos
y en la página del proyecto. Por ejemplo, el archivo demos/demo01.py
muestra todas las combinaciones de estilos.
Por último, Colorama permite también controlar la posición del texto en la consola. Por ejemplo, el siguiente código imprime «Recursos Python» y luego de 3 segundos reemplaza ese mismo texto por «www.recursospython.com».
from time import sleep from colorama import Cursor, init init() print("Recursos Python") sleep(3) print(Cursor.BACK(15) + Cursor.UP(1) + "www.recursospython.com")
BACK(15)
retrocede 15 posiciones (el tamaño de la cadena «Recursos Python»), mientras que UP(1)
sube una línea. Análogamente puede usarse Cursor.FORWARD
(para ir hacia adelante) y Cursor.DOWN
(para bajar líneas).
Curso online 👨💻
¡Ya lanzamos el curso oficial de Recursos Python en Udemy!
Un curso moderno para aprender Python desde cero con programación orientada a objetos, SQL y tkinter
en 2024.
Consultoría 💡
Ofrecemos servicios profesionales de desarrollo y capacitación en Python a personas y empresas. Consultanos por tu proyecto.
Germán Cifuentes says:
Cambié a Spyder, tampoco me funciona, me genera un mensaje que dice que ha sido importado colorama pero que no ha sido usado, corrí todos los ejemplos de su página, e incluso usé import colorama. ansi, no hay errores en el código pero la salida me la presenta en blanco y negro.
josefo says:
hola y como le doy color a los numeros, por ejemplo uso variables con numeros y textos ero para imprimirlos utilizo esas variables
variable1 = «el proximo eclipse es en esta fecha»
variable2 = «12456|134|141»
print(variable1, variable2)
Recursos Python says:
Hola, deberías imprimir por partes. Recordá que podés usar
print("Mensaje", end="")
para evitar que Python agregue un salto al final de la línea (y así escribir en una misma línea con sucesivas llamadas aprint()
).Saludos
Bruno says:
HOLA y si quiero que el color sea al azar?
Recursos Python says:
Hola. Podés usar
random.choice()
.Saludos
yako says:
Buenas a todos los que no le funciona. Teneis que inicializar colorama para que funcione
poniendo
init(autoreset=True)
ejemplo:
from colorama import init, Fore, Back, Style
init(autoreset=True) #Muy importante, sin esto no funciona!
print(Back.WHITE + Fore.BLUE + ‘hola don pepito!’)
Germán Cifuentes says:
Yako, que pena, no me funcionó, agregué la instrucción que dices y tampoco hace nada, no cambia el color.
import colorama
from colorama import init, Fore, Back, Style
init(autoreset=True) #Muy importante, sin esto no funciona!
print(Back.WHITE + Fore.BLUE + «hola don pepito!»)
from colorama import Back, init, Fore
init()
print(Back.RED + «Recursos Python»)
print(Style.DIM + «Recursos Python»)
print(Style.NORMAL + «Recursos Python»)
print(Style.BRIGHT + «Recursos Python»)
print(Back.RESET + Fore.RESET + «Este texto es normal.»)
Germán Cifuentes says:
No consigo que funcione colorama en Visual Studio, no genera errores pero no cambia el color del texto.
yako says:
Buenas a todos los que no le funciona. Teneis que inicializar colorama para que funcione
poniendo
init(autoreset=True)
ejemplo:
from colorama import init, Fore, Back, Style
init(autoreset=True) #Muy importante, sin esto no funciona!
print(Back.WHITE + Fore.BLUE + ‘hola don pepito!’)
Germán Cifuentes says:
Estoy trabajando con Microsoft Visual Studio, en el entorno Python pero no he podido instalar Colorama, me genera estos errores:
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(«Can’t connect to HTTPS URL because the SSL module is not available.»)’: /simple/colorama/
Guido Halley says:
no puedo instalarlo en windows me ayudarias ?
Recursos Python says:
Hola, ¿qué problema tenés?
yako says:
Buenas, abre cmd y prueba una de las siguientes maneras.
python pip install colorama
python pip3 install colorama
pip install colorama
pip3 install colorama
David Emanuel Sandoval says:
Buena info. Es útil tener a mano algo como esto.
J.Carlos says:
Precisamente lo que estaba buscando, gracias.