print con colores en python

Python

Ya que nuestros programas "modo texto" son bastante sosos y puede ser difícil leer la salida (sobre todo si son muy "verbosos"), a veces es útil poder imprimir en colores en pantalla.

Para conseguir esto en python basta con un simple carácter: el código ascii 27. No hay que usar librerías externas ni nada. Con ese caracter tendremos asceso a los códigos de colores del prompt.

Ejemplo:

print chr(27)+"[0;36m"+"este texto sale azul"
print chr(27)+"[0;46m"+"este texto sale con fondo azul"+chr(27)+"[0m"

Hay que tener en cuenta que la configuración de color se queda fijada para las siguientes salidas de texto. Si queréis que vuelva a escribir con los colores por defecto, debéis ejecutar:

print chr(27)+"[0m"

Formato y Colores

El formato de los códigos es, como habréis podido observar:
[A;Bm

A es un dígito que indica formato:
0 - normal
1 - negrita
2 - diluir
3 - cursiva
4 - subrayado
5 - parpadeo lento
6 - parpadeo rápido
7 - negativo (invertir)

B es un número que indica el color:
30-39 - color de texto, intensidad normal
40-49 - color de fondo, intensidad normal
90-99 - color de texto, intensidad fuerte
100-109 - color de fondo, intensidad fuerte

Tabla de Colores

Intensidad x0 x1 x2 x3 x4 x5 x6 x7 x9
Claro reset
Normal reset

Referencias

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de david.villa

Echa un vistazo a blessings:

Echa un vistazo a blessings: http://pypi.python.org/pypi/blessings/

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.

A todo color

Con xterm puedes tener hasta 256 colores.

Imagen de greenbite

Funciones para colores en C

Hace tiempo hice un programilla bastante siemple, pero que uso a veces en los programas que escribo en C para darle mas legibilidad:

colores.h:
#ifndef __COLORES
#define __COLORES
void color_rojo();
void color_rojo2();
void color_normal();
void color_verde();
void color_verde2();
void color_amarillo();
void color_azul();
void color_marron();
void color_gris();
#endif //COLORES

colores.c:

/* colores.c */
#include
void color_normal(){ fprintf(stdout,""); }
void color_rojo(){ fprintf(stdout,""); }
void color_rojo2(){ fprintf(stdout,""); }
void color_verde(){ fprintf(stdout,""); }
void color_verde2(){fprintf(stdout,"");}
void color_amarillo(){fprintf(stdout,"");}
void color_marron(){ fprintf(stdout,""); }
void color_gris(){fprintf(stdout,"");}
void color_azul(){fprintf(stdout,"");}

La pega es que el primer caracter, el que en python imprimes con chr(27) yo lo inserte a mano con Vim y tal vez al pegarlo aquí cambie, si quereis que os pase los ficheros en un tar.gz, poner vuestro correo y ya podreis compilarlos sin problema.

Visita mi Blog de Informatica : http://www.greenbiteblog.org

Imagen de david.villa

Lo podemos subir

al repositorio público si quieres. Te hacemos una cuenta o me lo pasas y yo lo subo.

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.

Imagen de greenbite

Subirlo

Vale, que tengo que hacer?

Visita mi Blog de Informatica : http://www.greenbiteblog.org

Imagen de david.villa

En realidad

tiene poco que ver con python, es cuestión del emulador de terminal. Funciona con cualquier lenguaje que pueda imprimir texto a un terminal

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.