Qual terminal você está usando? Você está no Unix ou no Windows?
Sjoerd
estou usando safari. Acabei de descobrir que posso usar tags HTML em python.
precisa saber é o seguinte
Respostas:
379
class color:
PURPLE ='\033[95m'
CYAN ='\033[96m'
DARKCYAN ='\033[36m'
BLUE ='\033[94m'
GREEN ='\033[92m'
YELLOW ='\033[93m'
RED ='\033[91m'
BOLD ='\033[1m'
UNDERLINE ='\033[4m'
END ='\033[0m'print(color.BOLD +'Hello World !'+ color.END)
Gosto da maneira como você não ousou, mas criou uma classe inteira para que eles fizessem referência e ajudassem todos os usuários a visualizar. Obrigado.
precisa saber é o seguinte
3
Vou usar isso como ditado, não como classe. Obrigado!
dvlden
6
Está imprimindo o seguinte:[1mHello World ![0m
Trabalhando na minha configuração: ubuntu 19.10, python 3.7
Elouan Keryell-Even 13/03
Posso combinar negrito com cores também? @Boubakr
alper
62
Usa isto:
print'\033[1m'+'Hello'
E para voltar ao normal:
print'\033[0m'
Esta página é uma boa referência para impressão em cores e pesos de fonte. Vá para a seção que diz 'Definir modo gráfico:'
E observe que isso não funcionará em todos os sistemas operacionais, mas você não precisa de nenhum módulo.
Se eu tivesse que adivinhar que alguém votou negativamente nisso, porque não respondeu à pergunta real de como imprimir algo em negrito.
Christian
Você está certo, houve uma atualização. Desculpe por esses caras.
Olu Smith
22
Na programação direta de computadores, não existe "impressão em negrito". Vamos voltar um pouco e entender que o seu texto é uma sequência de bytes e bytes são apenas pacotes de bits. Para o computador, aqui está o seu texto "olá", em binário .
0110100001100101011011000110110001101111
Cada um ou zero é um pouco. A cada oito bits é um byte. Cada byte é, em uma string como a do Python 2.x, um item de letra / número / pontuação (chamado de caractere). Então, por exemplo:
0110100001100101011011000110110001101111
h e l l o
O computador converte esses bits em letras, mas em uma sequência tradicional (chamada de sequência ASCII), não há nada para indicar texto em negrito. Em uma string Unicode, que funciona de maneira um pouco diferente, o computador pode suportar caracteres de idiomas internacionais, como chineses, mas, novamente, não há nada a dizer que algum texto está em negrito e outro não. Também não há fonte explícita, tamanho do texto etc.
No caso de imprimir HTML, você ainda está produzindo uma string. Mas o programa de computador que lê essa sequência (um navegador da Web) é programado para interpretar o texto como this is <b>bold</b>"isto está em negrito " quando converte sua sequência de letras em pixels na tela. Se todo o texto fosse WYSIWYG, a necessidade de HTML em si seria atenuada - você apenas selecionaria o texto em seu editor e o colocaria em negrito em vez de digitar o HTML.
Outros programas usam sistemas diferentes - muitas respostas explicam um sistema completamente diferente para imprimir texto em negrito nos terminais. Fico feliz que você tenha descoberto como fazer o que quer fazer, mas em algum momento você precisará entender como as strings e a memória funcionam.
Por mais insatisfatória que essa resposta possa parecer, é provavelmente a que melhor responde à pergunta, conforme solicitado . Não é uma questão de Python, mas uma questão de o que está fazendo a renderização .
John Y
8
O problema é que todos os interessados na resposta a essa pergunta entendem binário e como é usado para representar strings. Estamos interessados em como usar python para tornar o texto em negrito, o que é respondido acima. Esta resposta é muito pedante.
Trevor
16
Isso depende se você estiver usando linux / unix:
>>> start ="\033[1m">>> end ="\033[0;0m">>>print"The"+ start +"text"+ end +" is bold."The text is bold.
Existe um módulo muito útil para formatar texto (negrito, sublinhado, cores ..) no Python. Ele usa curseslib, mas é muito simples de usar.
Um exemplo:
from terminal import render
print render('%(BG_YELLOW)s%(RED)s%(BOLD)sHey this is a test%(NORMAL)s')print render('%(BG_GREEN)s%(RED)s%(UNDERLINE)sAnother test%(NORMAL)s')
ATUALIZADA:
Eu escrevi um módulo simples chamado colors.py para tornar isso um pouco mais pitônico:
import colors
with colors.pretty_output(colors.BOLD, colors.FG_RED)as out:
out.write("This is a bold red text")with colors.pretty_output(colors.BG_GREEN)as out:
out.write("This output have a green background but you "+
colors.BOLD + colors.FG_RED +"can"+ colors.END +" mix styles")
ImportError: No module named terminalImportError: No module named render Na verdade, este é o único site que eu pude encontrar sobre o módulo "terminal". Por favor elabore.
minerals
O link acima costumava conter o terminalmódulo, mas eles redirecionavam a página. Aqui está o código armazenado em cache pelo google.
Diego Navarro
De qualquer forma, eu fiz o meu próprio módulo python para resolver isso, confira @minerals ;-)
Diego Navarro
8
print'\033[1m Your Name \033[0m'
\ 033 [1m é o unicode para negrito no terminal \ 033 [0m é o unicode para finalizar o texto editado e retornar o formato de texto padrão !!!!!
se você não usar \ 033 [0m, todo o texto do terminal ficará em negrito !!!!!!!!!
Por favor, leia outra resposta antes de responder! Esta pergunta tem muitas respostas corretas com mais explicações. Você não está adicionando nada de útil.
Mohammad Dehghan
6
Instale o termcolormódulo
sudo pip install termcolor
e tente isso para texto colorido
from termcolor import colored
print colored('Hello','green')
ou isso para texto em negrito:
from termcolor import colored
print colored('Hello', attrs=['bold'])
Como alternativa, no Python 3 você pode usar cprintcomo um substituto para o built-in print, com o segundo parâmetro opcional para cores ou attrspara negrito (e outros atributos como underline), além dos printargumentos nomeados normais , como fileou end.
import sys
from termcolor import cprint
cprint('Hello','green', attrs=['bold'], file=sys.stderr)
Divulgação completa, esta resposta baseia-se fortemente na resposta de Olu Smith
e foi planejada como uma edição , o que reduziria consideravelmente o ruído nesta página, mas devido ao conceito equivocado de alguns revisores sobre o que uma edição deveria ser, agora sou forçado para fazer disso uma resposta separada.
Alguns terminais permitem imprimir texto colorido. Algumas cores se parecem com "negrito". Experimentar:
print('\033[1;37mciao!')
A sequência '\ 033 [1; 37m' faz com que alguns terminais comecem a imprimir em "branco brilhante", que pode parecer um pouco em branco em negrito. '\ 033 [0; 0m' o desativará.
Supondo que você realmente queira dizer "imprimir" em um terminal de impressão real :
>>> text ='foo bar\r\noof\trab\r\n'>>>''.join(s if i &1else(s +'\b'* len(s))*2+ s
...for i, s in enumerate(re.split(r'(\s+)', text)))'foo\x08\x08\x08foo\x08\x08\x08foo bar\x08\x08\x08bar\x08\x08\x08bar\r\noof\x08\
x08\x08oof\x08\x08\x08oof\trab\x08\x08\x08rab\x08\x08\x08rab\r\n'
No python 3, você pode usar colorama - simple_colors: (página Simple Colors: https://pypi.org/project/simple-colors/ - vá para o título 'Uso'.) Antes de fazer o que está abaixo, verifique se você pip install simple_colours.
from simple_colors import*print(green('hello','bold'))
Respostas:
fonte
[1mHello World ![0m
Usa isto:
E para voltar ao normal:
Esta página é uma boa referência para impressão em cores e pesos de fonte. Vá para a seção que diz 'Definir modo gráfico:'
E observe que isso não funcionará em todos os sistemas operacionais, mas você não precisa de nenhum módulo.
fonte
Você pode usar termcolor para isso:
Para imprimir um negrito colorido:
Para mais informações, consulte termcolor no PyPi .
simple-colors é outro pacote com sintaxe semelhante:
O equivalente em colorama pode ser
Style.BRIGHT
.fonte
Na programação direta de computadores, não existe "impressão em negrito". Vamos voltar um pouco e entender que o seu texto é uma sequência de bytes e bytes são apenas pacotes de bits. Para o computador, aqui está o seu texto "olá", em binário .
Cada um ou zero é um pouco. A cada oito bits é um byte. Cada byte é, em uma string como a do Python 2.x, um item de letra / número / pontuação (chamado de caractere). Então, por exemplo:
O computador converte esses bits em letras, mas em uma sequência tradicional (chamada de sequência ASCII), não há nada para indicar texto em negrito. Em uma string Unicode, que funciona de maneira um pouco diferente, o computador pode suportar caracteres de idiomas internacionais, como chineses, mas, novamente, não há nada a dizer que algum texto está em negrito e outro não. Também não há fonte explícita, tamanho do texto etc.
No caso de imprimir HTML, você ainda está produzindo uma string. Mas o programa de computador que lê essa sequência (um navegador da Web) é programado para interpretar o texto como
this is <b>bold</b>
"isto está em negrito " quando converte sua sequência de letras em pixels na tela. Se todo o texto fosse WYSIWYG, a necessidade de HTML em si seria atenuada - você apenas selecionaria o texto em seu editor e o colocaria em negrito em vez de digitar o HTML.Outros programas usam sistemas diferentes - muitas respostas explicam um sistema completamente diferente para imprimir texto em negrito nos terminais. Fico feliz que você tenha descoberto como fazer o que quer fazer, mas em algum momento você precisará entender como as strings e a memória funcionam.
fonte
Isso depende se você estiver usando linux / unix:
A palavra
text
deve estar em negrito.fonte
Confira o colorama . Isso não ajuda necessariamente em negrito ... mas você pode fazer impressões coloridas no Windows e Linux e controlar o brilho:
fonte
Existe um módulo muito útil para formatar texto (negrito, sublinhado, cores ..) no Python. Ele usa
curses
lib, mas é muito simples de usar.Um exemplo:
ATUALIZADA:
Eu escrevi um módulo simples chamado colors.py para tornar isso um pouco mais pitônico:
fonte
ImportError: No module named terminal
ImportError: No module named render
Na verdade, este é o único site que eu pude encontrar sobre o módulo "terminal". Por favor elabore.terminal
módulo, mas eles redirecionavam a página. Aqui está o código armazenado em cache pelo google.\ 033 [1m é o unicode para negrito no terminal \ 033 [0m é o unicode para finalizar o texto editado e retornar o formato de texto padrão !!!!!
se você não usar \ 033 [0m, todo o texto do terminal ficará em negrito !!!!!!!!!
fonte
Instale o
termcolor
móduloe tente isso para texto colorido
ou isso para texto em negrito:
Como alternativa, no Python 3 você pode usar
cprint
como um substituto para o built-inprint
, com o segundo parâmetro opcional para cores ouattrs
para negrito (e outros atributos comounderline
), além dosprint
argumentos nomeados normais , comofile
ouend
.fonte
Alguns terminais permitem imprimir texto colorido. Algumas cores se parecem com "negrito". Experimentar:
A sequência '\ 033 [1; 37m' faz com que alguns terminais comecem a imprimir em "branco brilhante", que pode parecer um pouco em branco em negrito. '\ 033 [0; 0m' o desativará.
fonte
Supondo que você realmente queira dizer "imprimir" em um terminal de impressão real :
Apenas envie isso para o seu
stdout
.fonte
Negrito Simples - Código de Duas Linhas
No python 3, você pode usar colorama - simple_colors: (página Simple Colors: https://pypi.org/project/simple-colors/ - vá para o título 'Uso'.) Antes de fazer o que está abaixo, verifique se você
pip install simple_colours
.fonte
pip install simple_colors