CAMBIANDO COLOR DE TEXTO EN PYTHON, CON «colorama».

Cuando estamos trabajando sobre la consola, a menudo necesitamos que en esta se muestre algún texto, sabemos también que este se va a mostrar siempre del mismo color. No obstante, el mostrar texto en diferentes colores, puede contribuir a que se diferencien mejor determinadas líneas del resto (por ejemplo para diferenciar las salidas de un programa de las entradas de usuario). Esto nos será especialmente útil cuando estemos creando aplicaciones que deban ejecutarse directamente en la consola (sin ningún tipo de interfaz gráfica).

Para dicho cometido, contamos en Python con «colorama» una librería que nos permitirá mostrar texto en distintos colores en la consola. Así, para trabajar con ella, tendremos que empezar por su instalación con el comando «pip» que ya conocemos:

Una vez instalado podremos empezar a realizar nuestras pruebas. Para ello importaremos la librería con los módulos que vamos a necesitar. Si estamos ejecutando el script en un entorno «Windows» escribiremos «init()» para iniciar «colorama«:

Como se ve, al hacer la importación, hemos incluido los módulos «Fore«, «Back» y «Style«, a través de los cuales vamos a poder modificar el color del texto, del fondo y la intensidad de este, respectivamente. Así, pongamos que queremos mostrar un sencillo texto en rojo:

Como se ve, para ello simplemente hemos sumado a nuestro texto el método RED (el color en cuestión) del módulo «Fore«:

De ese mismo modo podemos presentar nuestro texto en diferentes colores:

Aquí hay que señalar que una vez que establezcamos un color (a no ser que definamos otro) todo el texto que se mostrará después será de dicho color aunque no apliquemos el método visto:

Por ello, para restablecer el color de texto predeterminado usaremos «Fore.RESET» (para el caso del fondo usaríamos «Back.RESET«):

Pero tal y como señalamos al principio, también podemos usar los módulos «Back» y «Style» para definir el color del fono e intensidad del color, respectivamente. Em el caso de la intensidad, esta podrá ser baja («Style.DIM«), media («Style.NORMAL«) y alta («Style.BRIGHT«). Estas características pueden combinarse para un texto dado mediante el procedimiento de sumado ya visto:

Tal y como ya hemos señalado, para restablecer el fondo y color predeterminados, usaremos «Back.RESET» y «Fore.RESET«, respectivamente:

Hemos visto así, como podemos eliminar el color del texto, el color del fondo y el estilo, por separado. No obstante también podemos optar por eliminar todos los efectos de una vez, mediante «Style.RESET_ALL«:

Visto como funciona, podemos elaborar un sencillo script («ejemplo_colorama.py«) que nos muestre un texto y fondo) en cada uno de los colores disponibles. El código en cuestión podría ser el siguiente:

Como se ve, empezamos (al estar usando un entorno «Windows«) escribiendo «init()» para iniciar «colorama«. Tras ello, creamos las listas «FORES«, «BACKS» y «BRIGHTNESS» que contendrán los métodos que muestran los distintos colores de texto, fondo e intensidad del mismo, respectivamente. Tras ello crearemos la función «print_with_color()» que en un «for» aplicaremos para mostrar nuestro texto, en cada intensidad (lista «BRIGHTNESS«) disponible para cada color de texto («FORES«), mostrando el siguiente resultado al ejecutar:

Nótese aquí los tres primeros textos son de color negro, por lo cual no se ven al mostrarse sobre un fondo del mismo color.

Lo hecho para el color del texto, podemos hacerlo igualmente para el del fondo, partiendo del mismo código visto arriba:

En este caso, hemos usado un triple ciclo «for«, para representar cada intensidad disponible para cada color de fondo y para cada color de texto. La salida del código sobre estas líneas sería la siguiente:

Obteniendo las diferentes combinaciones de color de texto, fondo e intensidad que podemos aplicar a nuestro textos e interfaces.

Saludos.

Deja un comentario