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

时间:2012-01-19 10:06:02

标签: python

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

例如:

print "hello"

我应该怎么做才能使文本“hello”以粗体显示?

13 个答案:

答案 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参数(以及underlineprint等普通命名的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'))

enter image description here

答案 12 :(得分:0)

以粗体打印变得容易。 使用 pip 安装 quo

from quo import echo
echo(f"Hello World!!", bold=True)