如何在Python中打印粗体文本?

如何在Python中打印粗体文本?

例如:

print "hello" 

我该怎么做才能让文字“hello”以粗体显示?

 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 

用这个:

 print '\033[1m' + 'Hello' 

并且改回到正常状态:

 print '\033[0m' 

这个页面是打印颜色和字体权重的很好的参考。 转到“设置graphics模式”部分

并注意这不适用于所有的操作系​​统,但你不需要任何模块。

在直接的计算机编程中,没有“打印粗体文本”这样的东西。 让我们来回顾一下,理解你的文本是一串字节,字节只是一堆比特。 对于电脑,这是你的“你好”的文本, 二进制 。

 0110100001100101011011000110110001101111 

每一个或零是有点。 每8位是一个字节。 每个字节在Python 2.x中都是一个字母/数字/标点符号(称为字符)。 举个例子:

 01101000 01100101 01101100 01101100 01101111 hello 

计算机将这些位转换为字母,但是以传统的string(称为ASCIIstring),没有任何可以指示粗体文本。 在一个有点不同的Unicodestring中,计算机可以支持国际语言字符,就像中文字符一样,但是没有什么可以说某些文本是粗体的而有些文本不是。 也没有明确的字体,文字大小等

在打印HTML的情况下,你仍然在输出一个string。 但是,读取该string(networking浏览器)的计算机程序在将string转换为屏幕上的像素时被编程为像this is <b>bold</b>将文本解释this is <b>bold</b>为“这是粗体 ”。 如果所有的文本都是所见即所得,那么对HTML本身的需求就会减轻 – 你只需要在你的编辑器中select文本,然后加粗而不是inputHTML。

其他程序使用不同的系统 – 很多答案解释了在terminal上打印粗体文本的完全不同的系统。 我很高兴你发现如何去做你想做的事情,但是在某个时候,你会想知道string和内存是如何工作的。

检查colorama 。 它不一定帮助粗体…但是你可以在Windows和Linux上进行彩色输出,并控制亮度:

 from colorama import * init(autoreset=True) print Fore.RED + 'some red text' print Style.BRIGHT + Fore.RED + 'some bright red text' 

在Python中有一个非常有用的模块用于格式化文本(粗体,下划线,颜色..)。 它使用curses库,但它非常简单易用。

一个例子:

 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") 

这取决于你使用的是linux / unix:

 >>> start = "\033[1m" >>> end = "\033[0;0m" >>> print "The" + start + "text" + end + " is bold." The text is bold. 

text应该是大胆的。

  sudo pip install termcolor 

然后试试这个

  from termcolor import colored print colored('Hello', 'green') 

这就是我的

一些terminal允许打印彩色文本。 有些颜色看起来像是“大胆”的。 尝试:

 print ('\033[1;37mciao!') 

序列'\ 033 [1; 37m'使一些terminal开始以“亮白色”打印,可能看起来有点像粗体白色。 '\ 033 [0; 0m'会closures它。

假设你真的是指在真正的打印terminal上“打印”:

 >>> 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