如何在Python中打印粗体文本?
例如:
print "hello"
我应该怎么做才能使文本“hello”以粗体显示?
答案 0 :(得分:243)
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
答案 1 :(得分:41)
使用此:
print '\033[1m' + 'Hello'
然后恢复正常:
print '\033[0m'
This page是用于打印颜色和字体粗细的好参考。转到“设置图形模式:”
部分请注意,这不适用于所有操作系统,但您不需要任何模块。
答案 2 :(得分:21)
在直接计算机编程中,没有“打印粗体文本”这样的东西。让我们稍微回顾一下,理解你的文本是一串字节,字节只是一堆比特。对于计算机,这是binary中的“你好”文本。
0110100001100101011011000110110001101111
每一个或零都有点。每八位是一个字节。每个字节都是一个字符串,如Python 2.x中的字符串,一个字母/数字/标点符号项(称为字符)。例如:
01101000 01100101 01101100 01101100 01101111
h e l l o
计算机将这些位转换为字母,但在传统的字符串(称为ASCII字符串)中,没有任何内容可以指示粗体文本。在一个有点不同的Unicode字符串中,计算机可以支持国际语言字符,就像中文字符一样,但是,没有什么可以说某些文本是粗体而某些文本不是。还没有明确的字体,文字大小等。
在打印HTML的情况下,您仍在输出字符串。但是,读取该字符串(网络浏览器)的计算机程序被编程为在将您的字母串转换为屏幕上的像素时将this is <b>bold</b>
等文本解释为“这是粗体”。如果所有文本都是WYSIWYG,则可以减轻对HTML本身的需求 - 您只需在编辑器中选择文本并加粗,而不是输入HTML。
其他程序使用不同的系统 - 许多答案解释了在终端上打印粗体文本的完全不同的系统。我很高兴你发现了如何做你想做的事情,但在某些时候,你会想要理解字符串和记忆是如何工作的。
答案 3 :(得分:18)
sudo pip install termcolor
然后试试这个
from termcolor import colored
print colored('Hello', 'green')
这就是我的
答案 4 :(得分:10)
在Python中格式化文本(粗体,下划线,颜色......)有一个非常有用的module。它使用curses
lib,但它非常简单易用。
一个例子:
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')
我写了一个名为colors.py的简单模块,使其更加pythonic:
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")
答案 5 :(得分:10)
结帐colorama。它不一定有助于粗体...但你可以在Windows和Linux上进行彩色输出,并控制亮度:
from colorama import *
init(autoreset=True)
print Fore.RED + 'some red text'
print Style.BRIGHT + Fore.RED + 'some bright red text'
答案 6 :(得分:9)
这取决于你是否正在使用linux / unix:
>>> start = "\033[1m"
>>> end = "\033[0;0m"
>>> print "The" + start + "text" + end + " is bold."
The text is bold.
单词text
应为粗体。
答案 7 :(得分:5)
print '\033[1m Your Name \033[0m'
\ 033 [1m是终端中加粗的unicode \ 033 [0m是用于结束所编辑文本并返回默认文本格式的unicode !!!!
如果您不使用\ 033 [0m,则所有即将出现的终端文本将变为粗体!!!!!!
答案 8 :(得分:1)
假设您真的在真实的打印终端上表示“打印”:
>>> text = 'foo bar\r\noof\trab\r\n'
>>> ''.join(s if i & 1 else (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'
只需将其发送到您的stdout
。
答案 9 :(得分:1)
安装termcolor
模块
sudo pip install termcolor
然后尝试使用彩色文本
from termcolor import colored
print colored('Hello', 'green')
或以下粗体文本:
from termcolor import colored
print colored('Hello', attrs=['bold'])
在Python 3中,您也可以使用cprint
作为内置print
的替代品,颜色的可选第二个参数或粗体的attrs
参数(以及underline
或print
等普通命名的file
参数之外的其他属性,例如end
。
import sys
from termcolor import cprint
cprint('Hello', 'green', attrs=['bold'], file=sys.stderr)
完全公开,此答案很大程度上基于Olu Smith's answer 并用作edit,可以减少此页面上的噪音 相当可观,但是由于某些评论者的misguided概念 应该进行什么编辑,现在我不得不将其作为单独的答案。
答案 10 :(得分:0)
某些终端允许打印彩色文本。有些颜色看起来像是“大胆”。尝试:
print ('\033[1;37mciao!')
序列'\ 033 [1; 37m'使一些终端以“亮白色”开始打印,看起来有点像粗体白色。 '\ 033 [0; 0m'会将其关闭。
答案 11 :(得分:0)
在python 3中,您可以使用colorama-simple_colors: (“简单颜色”页面:https://pypi.org/project/simple-colors/-转到标题“用法”。)
from simple_colors import *
print(green('hello', 'bold'))
答案 12 :(得分:0)
以粗体打印变得容易。 使用 pip 安装 quo
from quo import echo
echo(f"Hello World!!", bold=True)