📜  python print to terminal with color - Python(1)

📅  最后修改于: 2023-12-03 15:34:03.791000             🧑  作者: Mango

Python中带颜色的终端打印

简介

在编写Python程序时,我们可能需要将信息打印到终端上以供查看。但是,有时只是简单的黑白文本并不能很好地呈现信息。这时,我们就需要使用带有颜色的终端打印来突出重点,提高可读性。在本文中,我们将介绍如何在Python中使用颜色打印到终端上。

ANSI转义序列

在介绍如何打印带颜色的终端信息之前,我们需要先了解ANSI转义序列是什么。简单来说,ANSI转义序列是一个特殊的控制字符序列,用于在终端上显示特殊的效果,比如修改文字颜色、背景色、粗体、下划线等。

ANSI转义序列通常以"\033["开头,后面跟着一些参数和控制字符来设置要显示的效果。下面是一些常用的ANSI转义序列:

  • 设置文字颜色:"\033[31m"(红色文字)
  • 设置背景颜色:"\033[41m"(红底白字)
  • 设置粗体:"\033[1m"
  • 设置下划线:"\033[4m"
  • 重置所有样式:"\033[0m"
打印带颜色的信息

在Python中,我们可以通过使用ANSI转义序列来打印带颜色的信息。下面是一个示例:

print('\033[31m' + 'Hello, world!' + '\033[0m')

在该示例中,我们使用"\033[31m"设置文本颜色为红色,使用"\033[0m"重置所有样式,并将要打印的文本放在中间。执行该语句后,我们会在终端上看到一段红色的文字。

封装成函数

为了方便起见,我们可以将打印带颜色的信息封装成一个函数,这样我们就可以在程序中多次使用。下面是一个封装好的函数:

def colored_print(text, color):
    colors = {
        'black': '\033[30m',
        'red': '\033[31m',
        'green': '\033[32m',
        'yellow': '\033[33m',
        'blue': '\033[34m',
        'purple': '\033[35m',
        'cyan': '\033[36m',
        'white': '\033[37m',
    }
    if color not in colors:
        color = 'white'
    print(colors[color] + text + '\033[0m')

该函数接受两个参数:要打印的文本和要使用的颜色。我们将颜色名字映射成对应的ANSI转义序列,在打印文本时使用对应的转义序列来设置颜色。如果传入的颜色名字无法找到对应的转义序列,那么就使用白色。

示例

下面是一个使用该打印函数的示例:

colored_print('Hello, world!', 'red')
colored_print('Hello, world!', 'green')
colored_print('Hello, world!', 'blue')

执行该示例代码后,我们会在终端上看到三段不同颜色的文字。效果如下:

colored_print

结论

到此,我们已经学习了如何在Python中使用ANSI转义序列打印带颜色的信息。通过打印带颜色的信息,我们可以更好地突出重点,提高信息的可读性和可视化,从而更好地编写高质量的Python程序。