Python Imprimir Texto Colorido

Rayven Esplanada 30 janeiro 2023
  1. Usar ANSI Escape Codes para imprimir texto colorido em Python
  2. Utilize o módulo colorama para imprimir texto colorido em Python
Python Imprimir Texto Colorido

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:

Saída de Texto Colorido Python

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 ou pip3.
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:

Saída de texto colorido Python com colorma

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.

Rayven Esplanada avatar Rayven Esplanada avatar

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

Artigo relacionado - Python Print