Python Imprimir Texto Colorido
- Usar ANSI Escape Codes para imprimir texto colorido em Python
-
Utilize o módulo
colorama
para imprimir texto colorido em Python
Este tutorial mostra-lhe como gerar texto colorido quando imprime em Python.
A única forma de manipular a consola de linha de comando usando a entrada é usando ANSI Escape Codes. Estes códigos podem manipular funções da consola, tais como texto ou cor de fundo, definições de cursor, fontes, e outros elementos modificáveis dentro da consola.
Usar ANSI Escape Codes para imprimir texto colorido em Python
Primeiro, vamos declarar uma classe Python que nos dá alguns códigos ANSI que representam cores com as quais podemos trabalhar.
class bcolors:
OK = "\033[92m" # GREEN
WARNING = "\033[93m" # YELLOW
FAIL = "\033[91m" # RED
RESET = "\033[0m" # RESET COLOR
3 destas variáveis são Código ANSI real para cores, enquanto que a variável RESET
está lá para definir a cor de volta ao padrão.
A função print()
produz o argumento string na consola de linha de comando.
Se quiser que a saída de print()
seja colorida, teria de inserir o código ANSI dentro da string que pode manipular a consola de linha de comando.
Utilizando a classe bcolors
, vamos imprimir 3 linhas diferentes com cores diferentes.
print(bcolors.OK + "File Saved Successfully!" + bcolors.RESET)
print(bcolors.WARNING + "Warning: Are you sure you want to continue?" + bcolors.RESET)
print(bcolors.FAIL + "Unable to delete record." + bcolors.RESET)
Prefixamos a string com a cor que pretende que reflicta e sufixamo-la com bcolors.RESET
para repor a cor por defeito antes da próxima vez que utilizar print()
ou da próxima vez que utilizar o terminal.
Se utilizar Python 3, pode também formatar a sua declaração print()
desta forma:
print(f"{bcolors.OK}File Saved Successfully!{bcolors.RESET}")
print(f"{bcolors.WARNING}Warning: Are you sure you want to continue?{bcolors.RESET}")
print(f"{bcolors.FAIL}Unable to delete record.{bcolors.RESET}")
Resultado:
Após a saída da última linha, o terminal será reposto à sua cor padrão por causa de bcolors.RESET
. Se não o colocar no final das suas linhas, o texto dentro do terminal será colorido na última cor que definir dentro de print()
. Neste caso, seria vermelho.
Utilize o módulo colorama
para imprimir texto colorido em Python
O problema da ANSI é que pode não funcionar bem com o SO Windows, pelo que precisaria de soluções para o fazer funcionar dentro das consolas Windows.
colorama
é um módulo Python que utiliza códigos de escape ANSI. Este módulo também torna possível que ANSI seja compatível com Windows. A documentação explica como tornaram possível o embrulho do código ANSI para compatibilidade com Windows.
Aqui está uma lista de cores de primeiro plano colorama
disponíveis:
BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET
Também têm estilos, incluindo um RESET_ALL
que reinicia todas as modificações ANSI actuais, enquanto o Fore.RESET
apenas reinicia o ANSI mais recente.
DIM, NORMAL, BRIGHT, RESET_ALL
Primeiro, precisamos de instalar o colorama
uma vez que é uma biblioteca criada pela comunidade. Podemos utilizar o pip
ou o anaconda
para instalar esta dependência.
- Para a
pip
oupip3
.
pip install colorama
pip3 install colorama //if you're using python3
- Para
anaconda
conda install -c anaconda colorama
Vamos experimentar algumas das cores e produzir várias linhas de cores e estilos diferentes. Utilizamos colorama.init()
para fazer com que estas definições funcionem no Windows.
import colorama
from colorama import Fore
from colorama import Style
colorama.init()
print(Fore.BLUE + Style.BRIGHT + "This is the color of the sky" + Style.RESET_ALL)
print(Fore.GREEN + "This is the color of grass" + Style.RESET_ALL)
print(Fore.BLUE + Style.DIM + "This is a dimmer version of the sky" + Style.RESET_ALL)
print(Fore.YELLOW + "This is the color of the sun" + Style.RESET_ALL)
Resultado:
O DIM
e o BRIGHT
produzirão tonalidades diferentes da cor quando utilizados na mesma cor. RESET_ALL
restabelece a cor por defeito para ser definida para outra cor ou deixa-a de volta à cor por defeito.
Em resumo, a única forma de imprimir texto colorido em Python é através da utilização de ANSI Escape Codes. É a única forma de a consola compreender as instruções da declaração print()
de Python. Pode fazê-lo manualmente incluindo o código de escape real dentro da sua print()
, ou utilizar colorama
para embrulhar o código ANSI num formato mais legível.
Se quiser obter mais opções de cores de código ANSI, há muitos recursos na Internet para as fornecer, este artigo é um bom começo. Também pode formatar texto (negrito, sublinhado, itálico), alterar o fundo da sua consola, e muito mais com o código ANSI.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn