2011-06-30 24 views
22

Estoy buscando una manera de cambiar el color de la salida de texto de mis scripts Python a medida que se ejecuta. La idea básica es algo como esto:Cambiar el color del texto del shell (Windows)

if (Data < LowerLimit): 
    print "Failed" # Output Failed as Red Text 
elif (Data > UpperLimit): 
    print "Failed" # Red Color 
else: 
    print "Passed" # Blue Color 

Los guiones están siendo utilizados en las máquinas de Windows para el análisis de datos rápida.

+1

un duplicado, aunque casi ninguna de las soluciones en la pregunta vinculada funciona en Windows. –

Respuesta

48

O cuál es el mejor módulo de E han encontrado http://pypi.python.org/pypi/colorama

+1

Recuerde marcar como respuesta cuando termine –

+3

Gracias ... ¡Colorama es increíble! –

+0

Sí, colorama realmente funciona para el símbolo del sistema de Windows 7. Antes de Windows 10, los códigos ANSI no funcionan (por alguna razón inescrutable) en el símbolo del sistema. Colorama puede usar comandos de Win32 completamente transparentes, lo que hace que funcione y lo hace fácil de usar. Me alegra que finalmente encontré una solución a este problema. –

0

tratar de buscar en el siguiente enlace: Python | change text color in shell

o leer aquí: http://bytes.com/topic/python/answers/21877-coloring-print-lines

En solución general es el uso de códigos ANSI, mientras que la impresión de su cadena.

Hay una solución que realiza exactamente lo que necesita.

+0

¿Pero por qué downvote? ¿Qué pasa con mi respuesta ??? –

+1

He intentado con sus soluciones, sin embargo, no parecen funcionar con Windows. La respuesta superior (la función hilite) cuando se llama hilite ("Hola", Verdadero, Falso) da como resultado '\ x1b [32mhello \ x1b [om' que cuando se imprime da como resultado ← [32mhello ← [0m en lugar de imprimir en color. Además, la biblioteca de curses no está en plataformas de Windows. – CyanRook

+0

Disculpe si es así, lo he comprobado en windows con pycharm y funciona perfectamente, sin embargo no funciona con la consola de Python, así que por favor perdonen y tengan paciencia –

1

Esto es muy simple! En lugar de importar módulos impares para Python o intentar comandos largos, puede aprovechar los comandos del sistema operativo Windows.

En Windows, existen comandos para cambiar el color del texto del símbolo del sistema. Usted puede utilizar esto en Python comenzando con un: importación OS

continuación, tiene que tener una línea de cambiar el color del texto, coloque fuera que quiere en su código. os.system ('color de 4')

Usted puede averiguar los otros colores, comenzando a escribir cmd.exe y ayuda color.

¿La parte buena? Eso es todo lo que es, con simples líneas de código. -Día

+6

Eso cambia el color de toda la consola, no solo el texto impreso después. – zvone

+0

Perdón por eso muchachos. Tenía sueño y entendí por completo la pregunta. – Daymarquez

+0

Sigue siendo una respuesta válida a la pregunta EXTREMADAMENTE RELACIONADA PROBABLEMENTE PARA DUPLICAR MARCADO, que es cómo cambiar el color del texto del intérprete de comandos en Python ... – Ian

-3

estado buscando en esto por un tiempo y no tiene ninguna respuesta satisfactoria, sin embargo ...

1) secuencias de escape ANSI hacer el trabajo en un terminal en Linux

2) si se puede tolerar un conjunto limitado de colo (u) rs prueba esto:

de impresión ("Hola", final = ''); print ("error", end = '', file = sys.stderr); print ("adiós")

En inactivo "hola" y "adiós" están en "error" es azul y en rojo.

No es fantástico, pero es lo suficientemente bueno por ahora, ¡y fácil!

+0

También lo intenté en Windows - funciona igual allí en un "terminal" inactivo también se olvidó necesita: 'import sys' – Neil

+3

Eso es solo IDLE colorear stdout y stderr por separado. Esto no hará nada en una consola normal (donde normalmente se ejecutan scripts) –

Cuestiones relacionadas