una - Python | cambiar el color del texto en el caparazón
imagen de fondo tkinter (6)
Esta pregunta ya tiene una respuesta aquí:
- Imprimir en la terminal con colores? 36 respuestas
Me preguntaba si alguien sabe cómo establecer el color del texto que aparece en el caparazón. Noté que el ''l'' usa un par de colores diferentes cuando imprimo información en la pantalla (en mi caja Linux), me preguntaba si podría aprovechar eso en Python.
Acabo de describir una clint biblioteca muy popular. Que tiene más características aparte de colorear la salida en la terminal.
Por cierto, admite terminales MAC, Linux y Windows.
Aquí está el ejemplo de usarlo:
Instalación (en Ubuntu)
pip install clint
Para agregar color a alguna cadena
colored.red(''red string'')
Ejemplo: Usar para salida de color (estilo de comando django)
from django.core.management.base import BaseCommand
from clint.textui import colored
class Command(BaseCommand):
args = ''''
help = ''Starting my own django long process. Use '' + colored.red(''<Ctrl>+c'') + '' to break.''
def handle(self, *args, **options):
self.stdout.write(''Starting the process (Use '' + colored.red(''<Ctrl>+c'') + '' to break)..'')
# ... Rest of my command code ...
Esto es tan simple de hacer en una PC: Windows OS: envíe un comando a os para cambiar el texto: import os
os.system(''color a'') #green text
print ''I like green''
raw_input(''do you?'')
Todos los principales códigos de color se dan en https://www.siafoo.net/snippet/88
echa un vistazo a http://www.pixelbeat.org/talks/python/ls.py
curses
le permitirán usar los colores correctamente para el tipo de terminal que se está utilizando.
Utilice Curses o secuencias de escape ANSI. Antes de comenzar a lanzar secuencias de escape, debe verificar que stdout es un tty. Puede hacer esto con sys.stdout.isatty()
. Aquí hay una función extraída de un proyecto mío que imprime resultados en rojo o verde, dependiendo del estado, usando secuencias de escape ANSI:
def hilite(string, status, bold):
attr = []
if status:
# green
attr.append(''32'')
else:
# red
attr.append(''31'')
if bold:
attr.append(''1'')
return ''/x1b[%sm%s/x1b[0m'' % ('';''.join(attr), string)