¿Qué terminal estás usando? ¿Estás en Unix o Windows?
Sjoerd
Estoy usando safari. Me acabo de enterar que puedo usar etiquetas HTML en Python.
Jia-Luo
Respuestas:
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)
Me gusta la forma en que no solo escribiste en negrita, sino que creaste una clase completa para que la consultaran y ayudaran a todos los usuarios a verla. Gracias.
GreenHawk1220
3
Voy a usar esto como dictado, no como una clase. ¡Gracias!
dvlden
66
[1mHello World ![0m
Trabajando en mi configuración: ubuntu 19.10, python 3.7
Elouan Keryell-Even
¿Puedo combinar negrita con color también? @Boubakr
Alper
62
Utilizar este:
print'\033[1m'+'Hello'
Y para volver a la normalidad:
print'\033[0m'
Esta página es una buena referencia para imprimir en colores y pesos de fuentes. Vaya a la sección que dice 'Establecer modo gráfico:'
Y tenga en cuenta que esto no funcionará en todos los sistemas operativos, pero no necesita ningún módulo.
Si tuviera que adivinar que alguien rechazó esto porque no respondió la pregunta real de cómo imprimir algo en negrita.
Christian
A la derecha, ha habido una actualización. Perdón por eso chicos.
Olu Smith
22
En la programación de computadoras directa, no existe tal cosa como "imprimir texto en negrita". Retrocedamos un poco y comprendamos que su texto es una cadena de bytes y los bytes son solo paquetes de bits. Para la computadora, aquí está su texto "hola", en binario .
0110100001100101011011000110110001101111
Cada uno o cero es un bit. Cada ocho bits es un byte. Cada byte es, en una cadena como esa en Python 2.x, un elemento de letra / número / puntuación (llamado carácter). Así por ejemplo:
0110100001100101011011000110110001101111
h e l l o
La computadora traduce esos bits en letras, pero en una cadena tradicional (llamada cadena ASCII), no hay nada que indique texto en negrita. En una cadena Unicode, que funciona de manera un poco diferente, la computadora puede admitir caracteres de idiomas internacionales, como los chinos, pero de nuevo, no hay nada que decir que algunos textos están en negrita y otros no. Tampoco hay fuente explícita, tamaño de texto, etc.
En el caso de imprimir HTML, todavía está produciendo una cadena. Pero el programa de computadora que lee esa cadena (un navegador web) está programado para interpretar texto this is <b>bold</b>como "esto está en negrita " cuando convierte su cadena de letras en píxeles en la pantalla. Si todo el texto fuera WYSIWYG, se mitigaría la necesidad de HTML en sí mismo: simplemente seleccionaría el texto en su editor y lo pondría en negrita en lugar de escribir el HTML.
Otros programas usan sistemas diferentes: muchas respuestas explican un sistema completamente diferente para imprimir texto en negrita en los terminales. Me alegra que hayas descubierto cómo hacer lo que quieres hacer, pero en algún momento, querrás entender cómo funcionan las cadenas y la memoria.
Por insatisfactorio que parezca esta respuesta, es probable que sea la que responda más adecuadamente a la pregunta que se le hizo . No es una pregunta de Python en absoluto, sino más bien una pregunta de lo que sea que esté haciendo la representación .
John Y
8
La cuestión es que todos los interesados en la respuesta a esta pregunta entienden el binario y cómo se usa para representar cadenas. Estamos interesados en cómo usar Python para hacer que el texto se vea en negrita, lo cual se respondió anteriormente. Esta respuesta es muy pedante.
Trevor
16
Esto depende si está utilizando Linux / Unix:
>>> start ="\033[1m">>> end ="\033[0;0m">>>print"The"+ start +"text"+ end +" is bold."The text is bold.
Echa un vistazo a colorama . No necesariamente ayuda con la negrita ... pero puede hacer una salida coloreada tanto en Windows como en Linux, y controlar el brillo:
from colorama import*
init(autoreset=True)printFore.RED +'some red text'printStyle.BRIGHT +Fore.RED +'some bright red text'
Hay un módulo muy útil para formatear texto (negrita, subrayado, colores ...) en Python. Utiliza curseslib pero es muy sencillo de usar.
Un ejemplo:
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')
ACTUALIZADO:
Escribí un módulo simple llamado colors.py para hacer esto un poco más 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 En realidad, este es el único sitio que pude encontrar sobre el módulo "terminal". Por favor elabora.
minerales
El enlace anterior solía contener el terminalmódulo, pero han redirigido la página. Aquí está el código almacenado en caché por google.
Diego Navarro
De todos modos, he creado mi propio módulo de Python para resolver esto, échale un vistazo a @minerals ;-)
Diego Navarro
8
print'\033[1m Your Name \033[0m'
\ 033 [1m es el Unicode para negrita en el terminal \ 033 [0m es el Unicode para finalizar el texto editado y volver al formato de texto predeterminado !!!!!
si no usa \ 033 [0m, entonces todo el próximo texto del terminal se pondrá en negrita !!!!!!!!!
¡Lea otra respuesta antes de responder! Esta pregunta tiene muchas respuestas correctas con más explicaciones. No estás agregando nada útil.
Mohammad Dehghan
6
Instalar el termcolormódulo
sudo pip install termcolor
y luego intente esto para texto coloreado
from termcolor import colored
print colored('Hello','green')
o esto para texto en negrita:
from termcolor import colored
print colored('Hello', attrs=['bold'])
En Python 3, puede usar alternativamente cprintcomo un reemplazo directo para el incorporado print, con el segundo parámetro opcional para colores o el attrsparámetro para negrita (y otros atributos como underline) además de los printargumentos normales nombrados como fileo end.
import sys
from termcolor import cprint
cprint('Hello','green', attrs=['bold'], file=sys.stderr)
Revelación completa, esta respuesta se basa en gran medida en la respuesta de Olu Smith
y fue pensada como una edición , lo que habría reducido considerablemente el ruido en esta página, pero debido al concepto equivocado de algunos revisores de lo que se supone que es una edición, ahora me veo obligado para hacer de esto una respuesta separada.
Algunos terminales permiten imprimir texto en color. Algunos colores se ven como si fueran "negrita". Tratar:
print('\033[1;37mciao!')
La secuencia '\ 033 [1; 37m' hace que algunos terminales comiencen a imprimir en "blanco brillante" que puede parecerse un poco al blanco en negrita. '\ 033 [0; 0m' lo apagará.
Suponiendo que realmente quiere decir "imprimir" en un terminal de impresión 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'
En python 3 podría usar colorama - simple_colors: (página Simple Colors: https://pypi.org/project/simple-colors/ - vaya al encabezado 'Uso'). Antes de hacer lo que se encuentra a continuación, asegúrese de hacerlo pip install simple_colours.
from simple_colors import*print(green('hello','bold'))
Respuestas:
fuente
[1mHello World ![0m
Utilizar este:
Y para volver a la normalidad:
Esta página es una buena referencia para imprimir en colores y pesos de fuentes. Vaya a la sección que dice 'Establecer modo gráfico:'
Y tenga en cuenta que esto no funcionará en todos los sistemas operativos, pero no necesita ningún módulo.
fuente
Puede usar termcolor para esto:
Para imprimir una negrita de color:
Para obtener más información, consulte termcolor en PyPi .
simple-colors es otro paquete con una sintaxis similar:
El equivalente en colorama puede ser
Style.BRIGHT
.fuente
En la programación de computadoras directa, no existe tal cosa como "imprimir texto en negrita". Retrocedamos un poco y comprendamos que su texto es una cadena de bytes y los bytes son solo paquetes de bits. Para la computadora, aquí está su texto "hola", en binario .
Cada uno o cero es un bit. Cada ocho bits es un byte. Cada byte es, en una cadena como esa en Python 2.x, un elemento de letra / número / puntuación (llamado carácter). Así por ejemplo:
La computadora traduce esos bits en letras, pero en una cadena tradicional (llamada cadena ASCII), no hay nada que indique texto en negrita. En una cadena Unicode, que funciona de manera un poco diferente, la computadora puede admitir caracteres de idiomas internacionales, como los chinos, pero de nuevo, no hay nada que decir que algunos textos están en negrita y otros no. Tampoco hay fuente explícita, tamaño de texto, etc.
En el caso de imprimir HTML, todavía está produciendo una cadena. Pero el programa de computadora que lee esa cadena (un navegador web) está programado para interpretar texto
this is <b>bold</b>
como "esto está en negrita " cuando convierte su cadena de letras en píxeles en la pantalla. Si todo el texto fuera WYSIWYG, se mitigaría la necesidad de HTML en sí mismo: simplemente seleccionaría el texto en su editor y lo pondría en negrita en lugar de escribir el HTML.Otros programas usan sistemas diferentes: muchas respuestas explican un sistema completamente diferente para imprimir texto en negrita en los terminales. Me alegra que hayas descubierto cómo hacer lo que quieres hacer, pero en algún momento, querrás entender cómo funcionan las cadenas y la memoria.
fuente
Esto depende si está utilizando Linux / Unix:
La palabra
text
debe ser audaz.fuente
Echa un vistazo a colorama . No necesariamente ayuda con la negrita ... pero puede hacer una salida coloreada tanto en Windows como en Linux, y controlar el brillo:
fuente
Hay un módulo muy útil para formatear texto (negrita, subrayado, colores ...) en Python. Utiliza
curses
lib pero es muy sencillo de usar.Un ejemplo:
ACTUALIZADO:
Escribí un módulo simple llamado colors.py para hacer esto un poco más pitónico:
fuente
ImportError: No module named terminal
ImportError: No module named render
En realidad, este es el único sitio que pude encontrar sobre el módulo "terminal". Por favor elabora.terminal
módulo, pero han redirigido la página. Aquí está el código almacenado en caché por google.\ 033 [1m es el Unicode para negrita en el terminal \ 033 [0m es el Unicode para finalizar el texto editado y volver al formato de texto predeterminado !!!!!
si no usa \ 033 [0m, entonces todo el próximo texto del terminal se pondrá en negrita !!!!!!!!!
fuente
Instalar el
termcolor
móduloy luego intente esto para texto coloreado
o esto para texto en negrita:
En Python 3, puede usar alternativamente
cprint
como un reemplazo directo para el incorporadoprint
, con el segundo parámetro opcional para colores o elattrs
parámetro para negrita (y otros atributos comounderline
) además de losprint
argumentos normales nombrados comofile
oend
.fuente
Algunos terminales permiten imprimir texto en color. Algunos colores se ven como si fueran "negrita". Tratar:
La secuencia '\ 033 [1; 37m' hace que algunos terminales comiencen a imprimir en "blanco brillante" que puede parecerse un poco al blanco en negrita. '\ 033 [0; 0m' lo apagará.
fuente
Suponiendo que realmente quiere decir "imprimir" en un terminal de impresión real :
Solo envía eso a tu
stdout
.fuente
Audacia simple: código de dos líneas
En python 3 podría usar colorama - simple_colors: (página Simple Colors: https://pypi.org/project/simple-colors/ - vaya al encabezado 'Uso'). Antes de hacer lo que se encuentra a continuación, asegúrese de hacerlo
pip install simple_colours
.fuente
pip install simple_colors