如何在Python中打印黑体字?

1,251 阅读6分钟

5/5 - (1票)

  • 摘要: 要在Python中打印粗体字,你可以使用。
    • simple_color 包。
    • '\033[1m' ANSI escap-sequence。
    • termcolor模块。
    • coloroma 包。
    • prompt_toolkit 包。

在Python中打印加粗文本的一个简单的、不需要库的方法是将一个给定的字符串s ,用特殊的转义序列括起来,像这样。print("\033[1m" + s + "\033[0m").

我们将在本文的方法2中讨论这个最Pythonic的解决方案。


你可以在Python中把你的文本改为粗体斜体和下划线。你不仅可以玩弄你的代码的风格,还可以在Python中特定包和模块的帮助下改变它的颜色。

有趣的是!不是吗?

有不同的方法可以做到这一点。在本教程结束时,你将掌握所有的工具来玩弄你的代码的风格。

所以,不要再拖延了,让游戏开始吧!

方法1:使用simple_color包

这是在Python中打印粗体字的最简单的方法之一。simple_colors 包包括许多颜色,如蓝色、黑色、绿色、品红、红色、黄色和青色。

你还可以将你的文本格式化为各种样式,如粗体、暗体、斜体、亮体、下划线、反向和闪烁,这些样式都包含在包中。

由于simple_color 包不是Python标准库的一部分;你需要在使用它之前安装它。要安装simple_color包,在你的终端上复制以下代码。

pip install simple-colors

或。

python -m pip install simple-colors

在你成功地安装了该模块后,你可以按照下面的例子中给出的语法来定制/风格你的代码。

例子。下面的例子演示了如何使用simple_colors 模块为文本添加颜色、格式,并使其加粗甚至下划线。

from simple_colors import *

# normal and colored text
print('Normal:', blue('Welcome Finxter!'))
# print BOLD and colored text
print('BOLD: ', green('Welcome Finxter!', 'bold'))
# print BOLD and Underlined and colored text
print('BOLD and Underlined: ', red('Welcome Finxter!', ['bold', 'underlined']))

输出。

好哇!这看起来很神奇。

方法2:使用ANSI逃逸序列 '\033[1m'

在Python中打印加粗文本的最Pythonic方法是将给定的字符串s ,像这样用特殊的转义序列包围。print("\033[1m" + s + "\033[0m").

这里有一个最小的例子。

s = "abc"
bold_s = "\033[1m" + s + "\033[0m"
print(bold_s)
print(s)

你可以在我们的交互式Jupyter笔记本中自己试试。

🧩 互动式在Google Colab中自己尝试一下

接下来让我们深入了解一些进一步的解释,看看为什么会这样。

一些终端支持通过独特的转义序列来修改被打印内容的色调、颜色和外观

这些转义序列被称为ANSI转义序列,是根据表明其用途的ANSI标准命名的。

因此,你可以利用内置的ANSI转义序列,使内容或特定的文本变成粗体、下划线、斜体,甚至是彩色的。为了在Python中使用ANSI转义序列打印粗体文本,我们使用: '**\033[1m'**.

例1:为Windows 用户打印BOLD 文本的转义序列

如果你使用的是Windows操作系统,你必须调用os.system() 模块来使ANSI转义序列正常工作。

import os
os.system ("color")

c= {
    "head": "\033[95m",
    "red": "\033[91m",
    "ENDC": "\033[0m",
    "Bold": "\u001b[1m",
}

print("\033[31;1;4mThis line gets printed in bold, underlined, and red color \033[0m")

输出。

💡 注意: 代码 **'\033[0m'**用来结束粗体文本格式。如果你忘记添加ANSI代码序列来包围特定的代码行,下面的语句也会被打印成黑体格式。

例2:为LINUX用户打印BOLD 文本的转义序列

print("Hello and welcome to my "'\033[1m' + ''Blog'' + '\033[0m')

方法3:使用termcolor模块

在Python中,termcolor 是一个用于ANSII颜色格式化的模块。

该模块为各种终端和某些文本格式化属性提供了各种属性。它还包括各种文本颜色,如蓝色、红色和绿色,以及文本高亮,如on-magenta、on-cyan和on-white。

因此,我们将使用文本属性中的粗体 属性

💡 注意: termcolor 模块并不是Python标准库的一部分。因此,在使用它之前,你需要安装它。要安装 模块,请在你的终端上复制以下代码。termcolor

pip install termcolor

安装模块后,让我们看看如何使用它来打印粗体文本。

例子。

from termcolor import colored

text = colored('Hello and Welcome to FINXTER!', attrs=['bold'])  # bold-text
print(text)
text2 = colored('This text will be printed in bold and blue color', 'blue', attrs=['bold'])
print(text2)

输出。

方法4:使用Coloroma软件包

ANSI转义字符序列长期以来一直被用来在Unix和Mac上产生彩色的终端文本和光标定位。

Colorama在Windows上也能做到这一点。通过包装stdout,剥离它发现的ANSI序列(这些序列在输出中会显示为胡言乱语),并将它们转换为适当的win32调用以修改终端的状态。

在其他平台上,Colorama什么也不做。在Windows中,调用init() ,会将发送到stdout或stderr的任何内容的ANSI转义序列转移,并将其替换为Win32调用。

要在程序退出前退出利用Colorama,可以调用deinit() 。它将把stdout和stderr恢复到它们的原始值。

来源 :https://pypi.org/project/colorama/

由于coloroma 不是 Python 标准库的一部分,你必须在终端使用下面的命令来安装它,才能使用它。

pip install colorama

让我们看一个例子来了解我们如何使用Colorama模块在Python中打印粗体字。

例1:

from colorama import Fore, Style

print(Style.BRIGHT + 'Bold text')
print(Fore.BLUE + 'Printing blue colored text')
print(Style.RESET_ALL)
print('This line has no effect of coloroma')

输出。

**例2:**将coloroma 包和termcolor 模块一起使用。

from colorama import init
from termcolor import colored

init()
print(colored('Hello and Welcome to Finxter!', 'blue', attrs=['bold']))

输出。

方法5:创建一个Html对象

Prompt_toolkit 包括一个 `print_formatted_text()`函数,该函数(尽可能)与内置的 [print()](https://blog.finxter.com/python-print/)函数。它还支持颜色和格式化。

HTML可以用来证明一个字符串包含基于HTML的格式化。因此,HTML对象可以识别粗体、斜体和下划线的基本标签。<b>,<i><u>

例1:

from prompt_toolkit import print_formatted_text, HTML

print_formatted_text(HTML('<b>This text is bold</b>'))
print_formatted_text(HTML('<i>This text is italic</i>'))
print_formatted_text(HTML('<u>This text is underlined</u>'))

输出。

例2:

由于所有的HTML标签都被映射到样式表的类中,你也可以为一个自定义标签指定一个样式。

from prompt_toolkit import print_formatted_text, HTML
from prompt_toolkit.styles import Style

sty = Style.from_dict({
       'y': '#44ff00 bold',
})

print_formatted_text (HTML('<y> Hello and welcome to <u>Finxter!</u> </y>'), style=sty)

输出。

结论

我们终于征服了在 Python 中打印粗体文本的艺术。我们不仅学会了如何打印粗体文本,而且还学会了如何使用颜色和其他格式化样式(如下划线和斜体)来为代码设置样式。我希望这篇文章对你有所帮助。