Como Imprimir Texto Colorido no Terminal com Python

Ana Maria Gomes
5 minutos de leitura

Conteúdos do tutorial

Ao trabalhar com Python, você pode querer adicionar um toque de cor à saída do seu terminal. Seja para destacar uma mensagem de aviso ou para diferenciar entre diferentes tipos de saída, colorir texto pode ser um recurso muito útil. Neste post, vamos explorar como imprimir texto colorido no terminal em Python.

Usando Sequências de Escape ANSI

O método mais comum para colorir texto no terminal é usando sequências de escape ANSI. Essas sequências são como comandos que dizem ao terminal para mudar a cor do texto. Aqui está um exemplo simples de como você pode definir esses códigos de cor em Python:

class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKCYAN = '\033[96m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'
    BOLD = '\033[1m'
    UNDERLINE = '\033[4m'

Para usar esses códigos de cor, você pode simplesmente concatená-los com o seu texto:

print(bcolors.WARNING + "Aviso: Não há frommets ativos restantes. Continuar?" + bcolors.ENDC)

Ou, se você estiver usando Python 3.6 ou mais recente, você pode usar literais de string formatados para uma sintaxe mais limpa:

print(f"{bcolors.WARNING}Aviso: Não há frommets ativos restantes. Continuar?{bcolors.ENDC}")

Essas sequências de escape ANSI funcionam em sistemas Unix como OS X e Linux, e no Windows 10 se você habilitar a emulação VT100.

Usando o Módulo curses

Para coloração de texto mais complexa e manipulação do terminal, você pode usar o módulo curses, que oferece um nível mais alto de controle sobre o terminal. O Python Curses HowTO é um excelente recurso para começar com este módulo.

Usando o Módulo termcolor

Para uma abordagem mais simples, você pode usar o módulo termcolor, que oferece uma maneira direta de colorir texto:

from termcolor import colored

print(colored('olá', 'red'), colored('mundo', 'green'))

Este método é fácil de usar, mas pode não ser adequado para aplicações mais avançadas como programação de jogos.

Coloração Multiplataforma com Colorama

Se você está procurando uma solução multiplataforma, Colorama é uma excelente escolha para imprimir textos coloridos no terminal. Funciona tanto em sistemas Windows quanto Unix e é compatível com Python 2.7 e Python 3.5+. Veja como você pode usá-lo:

from colorama import init as colorama_init, Fore, Style

colorama_init()

print(f"Isso é {Fore.GREEN}cor{Style.RESET_ALL}!")

Imprimindo Formatos de Cor Personalizados

Se você quer ser criativo com a formatação de texto, pode imprimir uma string com uma cor e estilo personalizados começando com um código ANSI específico e terminando a mudança de estilo com \x1b[0m:

print('\x1b[6;30;42m' + 'Sucesso!' + '\x1b[0m')

Você também pode imprimir uma tabela de opções de formato para ver todas as possibilidades:

def print_format_table():
    for style in range(8):
        for fg in range(30,38):
            s1 = ''
            for bg in range(40,48):
                format = ';'.join([str(style), str(fg), str(bg)])
                s1 += '\x1b[%sm %s \x1b[0m' % (format, format)
            print(s1)
        print('\n')

print_format_table()

Resumo

Neste post, cobrimos vários métodos para imprimir texto colorido no terminal em Python. Seja escolhendo usar diretamente sequências de escape ANSI, aproveitando o módulo curses para mais controle, optando pela simplicidade do termcolor, ou indo de multiplataforma com Colorama, agora você tem as ferramentas para tornar a saída do seu terminal mais colorida e significativa. Lembre-se de sempre testar suas escolhas de cores para garantir que elas sejam legíveis em diferentes fundos e terminais.

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse: