如何在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
。