Python 打印彩色文本
本教程告诉你如何在 Python 中打印时生成彩色文本。
使用输入来操作命令行控制台的唯一方法是使用 ANSI 转义码。这些代码可以操纵控制台功能,如文本或背景颜色、光标设置、字体和控制台中的其他可修改元素。
在 Python 中使用 ANSI 转义码打印彩色文本
首先,让我们声明一个 Python 类,它给我们提供了一些代表颜色的 ANSI 码。
class bcolors:
OK = "\033[92m" # GREEN
WARNING = "\033[93m" # YELLOW
FAIL = "\033[91m" # RED
RESET = "\033[0m" # RESET COLOR
其中有 3 个变量是实际的 ANSI 代码的颜色,而变量 RESET
是用来将颜色设置回默认值的。
函数 print()
将字符串参数输出到命令行控制台。
如果你想让 print()
的输出是有颜色的,你就必须在字符串中插入 ANSI 代码,可以操纵命令行控制台。
使用类 bcolors
,我们将打印 3 行不同颜色的字符串。
print(bcolors.OK + "File Saved Successfully!" + bcolors.RESET)
print(bcolors.WARNING + "Warning: Are you sure you want to continue?" + bcolors.RESET)
print(bcolors.FAIL + "Unable to delete record." + bcolors.RESET)
我们在字符串前加上你希望它反映的颜色,并在下一次使用 print()
或下一次使用终端前用 bcolors.RESET
将颜色重置为默认值。
如果你使用 Python 3,你也可以像这样格式化你的 print()
语句。
print(f"{bcolors.OK}File Saved Successfully!{bcolors.RESET}")
print(f"{bcolors.WARNING}Warning: Are you sure you want to continue?{bcolors.RESET}")
print(f"{bcolors.FAIL}Unable to delete record.{bcolors.RESET}")
输出:
在输出最后一行后,由于 bcolors.RESET
的作用,终端会被重置回默认颜色。如果你没有把它放在行末,终端中的文本将被染成你在 print()
中设置的最后一种颜色。在这种情况下,它将是红色的。
在 Python 中使用 colorama
模块打印彩色文本
ANSI 的问题是它在 Windows 操作系统中可能无法正常工作,所以你需要变通的方法来使它在 Windows 控制台中工作。
colorama
是一个使用 ANSI 转义码的 Python 模块。这个模块也使 ANSI 与 Windows 兼容成为可能。文档中解释了他们是如何使 ANSI 代码与 Windows 兼容成为可能的。
这里有一个可用的 colorama
前景色的列表。
BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET
它们也有样式,包括一个 RESET_ALL
,可以重置所有当前的 ANSI 修改,而 Fore.RESET
只重置最新的 ANSI。
DIM, NORMAL, BRIGHT, RESET_ALL
首先,我们需要安装 colorama
,因为它是一个社区创建的库。我们可以使用 pip
或 anaconda
来安装这个依赖关系。
- 对于
pip
或pip3
pip install colorama
pip3 install colorama //if you're using python3
- 对于
anaconda
conda install -c anaconda colorama
我们将尝试一些颜色,并输出几行不同的颜色和风格。我们使用 colorama.init()
来使这些设置在 Windows 下工作。
import colorama
from colorama import Fore
from colorama import Style
colorama.init()
print(Fore.BLUE + Style.BRIGHT + "This is the color of the sky" + Style.RESET_ALL)
print(Fore.GREEN + "This is the color of grass" + Style.RESET_ALL)
print(Fore.BLUE + Style.DIM + "This is a dimmer version of the sky" + Style.RESET_ALL)
print(Fore.YELLOW + "This is the color of the sun" + Style.RESET_ALL)
输出:
DIM
和 BRIGHT
用在同一种颜色上时,会输出不同深浅的颜色。RESET_ALL
将颜色重置为默认值,可以设置为其他颜色,也可以让它回到默认值。
综上所述,在 Python 中打印出彩色文本的唯一方法就是利用 ANSI 转义码。这是控制台理解 Python 的 print()
语句指令的唯一方法。你可以通过在你的 print()
中包含实际的转义码来手动完成,或者使用 colorama
将 ANSI 代码包装成更易读的格式。
如果你想获得更多的 ANSI 代码颜色的选择,互联网上有很多资源提供,本文是一个好的开始。你也可以用 ANSI 代码来格式化文本(粗体、下划线、斜体),改变你的控制台背景,以及更多。
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn