Imprimir con color en Python

Imprimir con color en Python es muy sencillo usando unos códigos que identifican cada color, pero resulta bastante tedioso usarlos porque son complicados de recordar.

En este artículo, te enseñaré una librería que he creado para facilitar esta tarea y poder imprimir con color los resultados de nuestros programas en Python.

Códigos principales

En esta sección te mostraré los códigos que podemos usar para imprimir con los principales colores.

Black = '\u001b[30m'
Red = '\u001b[31m'
Green = '\u001b[32m'
Yellow = '\u001b[33m'
Blue = '\u001b[34m'
Magenta = '\u001b[35m'
Cyan = '\u001b[36m'
White = '\u001b[37m'
Reset = '\u001b[0m'

Imaginando que tenemos declaradas esas constantes en un programa podemos imprimir con color de la siguiente forma:

print(Black+'mapecode'+Reset)

Como se puede ver bastaría con llamar a la constante del color que queremos antes del texto que queremos mostrar para qué se añada el código correspondiente. También llamamos a la constante Reset para que solo imprimamos con color el texto de esa impresión. Sí quitamos la constante de reinicio todo lo que imprimamos a partir de esa instrucción se mostrará en negro en este caso.

Imprimir con color en Python un elemento que no sea un string

Este es un problema muy común si intentamos imprimir números de la misma forma que el ejemplo anterior:

num = 0
print(Black+num+Reset)

Si codificamos una expresión cómo la anterior se producirá un error porque no se pueden concatenar cadenas a otros tipos de datos. Para solucionarlo bastaría con realizar una conversión:

num = 0 
print(Black+str(num)+Reset)

Librería para imprimir con color en Python

Para facilitar el proceso he creado una librería que podéis encontrar en github. Tan solo habría que clonar el repositorio y copiar el fichero color.py a vuestro proyecto.

Para utilizarla podéis importarla como si fuera un módulo cualquiera del proyecto y llamar a las funciones que están desarrolladas o a las constantes con los colores principales. Vamos a ver algunos ejemplos de uso.

Imprimir los 256 colores en Python

En la siguiente imagen se puede ver cómo se imprime el código correspondiente a cada color en ese color, valga la redundancia.

Imprimir los 256 colores en Python

Otras de las posibilidades es imprimir con un color de fondo determinado, en la siguiente imagen podemos observar lo mismo que la imagen anterior pero haciendo referencia a los colores de fondo.

Imprimer los 256 colores de fondo en Python

Imprimir colores específicos

Una de las posibilidades más interesantes de la librería es obtener el color en base a su código (los de las imágenes anteriores).

import color
print(color.color_by_code(18)+'mapecode'+color.Reset)

Con el código anterior estaremos imprimiendo la palabra mapecode  en un tono azulado-morado, como se puede observar las imágenes anteriores.

Imprimir con un color aleatorio en Python

Otra de las posibilidades interesantes es imprimir con un color aleatorio tanto el texto como el fondo, con las funciones random_color()random_background_color().

Más ejemplos de la librería

En la siguiente imagen se pueden observar más ejemplos interesantes de uso:

más ejemplos de uso

Referencias