Python彩色输出(Colored Print)

本文介绍了如何在Python中实现控制台彩色输出,主要通过使用ANSI转义序列来实现。示例展示了如何定义和使用不同颜色的常量,以及借助第三方库如colorama和termcolor简化彩色打印。此外,还提及了不同颜色效果,如文字和背景的深浅搭配,以及闪烁效果。

Python 彩色输出

1.原理解析

在控制台输出彩色信息,不是编程语言特有的属性,而是利用了ANSI转义序列。无论使用的是哪种编程语言,只要正确的使用ANSI转义序列就可以打印出彩色信息。常用的ANSI序列程序有ANSICON等。

2.彩色输出方式一

直接使用ANSI转义序列

class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKCYAN = '\033[96m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'
    BOLD = '\033[1m'
    UNDERLINE = '\033[4m'

使用

print(f"{bcolors.BOLD} this this {bcolors.ENDC}")

支持的效果有:

图片来自于ref1, ref2

  • 浅色文字,深色背景
    在这里插入图片描述

  • 深色文字,浅色背景
    在这里插入图片描述

  • 闪烁效果
    在这里插入图片描述

3.彩色输出方式二

使用colorama或者termcolor,譬如使用termcolor:

>>> from termcolor import colored
>>> print(colored("this is the dog king.", "red"))

Ref

1.https://blog.youkuaiyun.com/sigmarising/article/details/88765912
2.https://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97
3.https://stackoverflow.com/questions/287871/how-to-print-colored-text-to-the-terminal

Python中通过命令行输出彩色文字,你可以利用ANSI转义序列或者第三方库如`colorama`、`termcolor`等来实现。 ### 使用 ANSI 转义序列 这是一种较为底层的方式,在支持ANSI编码的终端环境中有效: ```python # 定义一些常量代表颜色代码 RED = '\033[91m' GREEN = '\033[92m' BLUE = '\033[94m' ENDC = '\033[0m' # 结束符用于恢复默认设置 print(f"{RED}这是红色文本{ENDC}") print(f"{GREEN}这是绿色文本{ENDC}") ``` 这种方式简单直接,但它依赖于操作系统的兼容性和环境配置,并不是所有平台都完全支持这种格式。 ### 使用 colorama 库 对于跨平台的支持更好。首先需要安装 `colorama`: ```bash pip install colorama ``` 然后可以在脚本里像下面这样做: ```python from colorama import init, Fore, Style init() # 初始化,使得Windows系统也能够正常显示色彩 print(Fore.RED + "这是一个红字" + Style.RESET_ALL) print(Fore.GREEN + "这是一段绿字" + Style.RESET_ALL) # 关闭程序时应该调用deinit() ``` `colorama` 自动处理了不同操作系统间的差异,所以推荐这种方法来进行简单的着色任务。 ### 使用 termcolor 库 如果你想要更多的样式控制(比如背景颜色),可以考虑 `termcolor` : 先同样地安装它: ```bash pip install termcolor ``` 接着按照如下方式编写代码: ```python from termcolor import colored print(colored('Hello World!', 'red', attrs=['bold'])) print(colored('This is blue text on a yellow background.', 'blue', 'on_yellow')) ``` `termcolor` 提供了一个更高级别的API去定制化你的输出效果,包括前景色、背景色以及属性(加粗、下划线等等)。 选择哪一种取决于您的具体需求及项目复杂度。如果只是偶尔打印几条带颜色的日志信息的话,那么使用内置的功能加上少量的手工字符串拼接就足够;但如果涉及到更多复杂的交互界面设计,则建议引入专门的颜色管理模块。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值