associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Revisão 2e 2006-04-22 14:32:27

Excluir mensagem

CoresNoTerminal

Receita de como utilizar cores no terminal

  • Algumas vezes queremos utilizar cores no terminal e sempre temos que lembrar os códigos complicados das cores, esta página é visa auxiliar nesta tarefa.

    Esta página surgiu de um post do Marco Carvalho na lista python-brasil@yahoogrupos.com.br , ou seja, todos os créditos a ele. ;)

Como faço para alterar a cor de texto no shell (win/linux)?

Usando seqüências de escape ANSI:

   1 >>> print '\033[31m'+'Isto eh vermelho'+'\033[0;0m'
   2 Isto eh vermelho
   3 >>> print '\033[32m'+'Isto eh verde'+'\033[0;0m'
   4 Isto eh verde
   5 >>> print '\033[42m'+'\033[1m'+'\033[33m'+'Isto eh amarelo negrito com fundo verde'+'\033[0;0m'
   6 Isto eh amarelo negrito com fundo verde
   7 >>>

Para facilitar, segue a tabela de seqüência de escape ANSI:

   1 vermelho = '\033[31m'
   2 verde = '\033[32m'
   3 azul = '\033[34m'
   4 
   5 ciano = '\033[36m'
   6 magenta = '\033[35m'
   7 amarelo = '\033[33m'
   8 preto = '\033[30m'
   9 
  10 branco = '\033[37m'
  11 
  12 restaura cor original = '\033[0;0m'
  13 negrito = '\033[1m'
  14 reverso = '\033[2m'
  15 
  16 fundo preto = '\033[40m'
  17 fundo vermelho = '\033[41m'
  18 fundo verde = '\033[42m'
  19 fundo amarelo = '\033[43m'
  20 fundo azul = '\033[44m'
  21 fundo magenta = '\033[45m'
  22 fundo ciano = '\033[46m'
  23 fundo branco = '\033[47m'

No windows não funciona. Existe alguma maneira?

  • Hummm..... Se bem me lembro (faz séculos que não mexo com esse ambiente), o DOS não suporta ANSI diretamente, precisa do diver ANSI.SYS no config.sys

 device=ANSI.SYS
  • Aproveitando, só de brincadeira, fiz uma conversão (bem porca por sinal) de um [1] script do Aurélio Marinho Jargas (vulgo Verde) que imprime todas as cores ANSI no terminal.

   1 #**** cores.py ****
   2 
   3 import string
   4 for letra in ["0","1","2","3","4","5","6","7"]:
   5     for bold in ['',';1']:
   6         for fundo in ["0","1","2","3","4","5","6","7"]:
   7             seq="4" + fundo + ";3" + letra
   8             saida = "\033["+ seq + bold + "m" + string.center(seq+bold, 8) + "\033[m"
   9             print "%s" % saida,
  10         print