首页Python【Python计算生态】c...

【Python计算生态】colorama——跨平台终端文本颜色输出库

Python受欢迎的原因之一就是其计算生态丰富,据不完全统计,Python 目前为止有约13万+的第三方库。

本系列将会陆续整理分享一些有趣、有用的第三方库。

文章配套代码获取有以下两种途径:
  • 通过百度网盘获取:
链接:https://pan.baidu.com/s/1FSGLd7aI_UQlCQuovVHc_Q?pwd=mnsj 提取码:mnsj
  • 前往GitHub获取
https://github.com/returu/Python_Ecosystem





01
简介

colorama是一个用于在终端输出彩色文本的Python第三方库,支持跨平台(Windows/Linux/macOS),能自动处理不同系统终端的颜色编码差异,广泛应用于终端工具、日志记录、命令行界面美化等场景
直接使用pip安装:
pip install colorama
colorama提供了Fore(字体色)、Back(背景色)、Style(样式)三个模块用于设置文本颜色及样式:
  • Fore模块
使用 Fore 设置前景色(文字颜色)。
Fore.BLACK    # 黑Fore.RED      # 红Fore.GREEN    # 绿Fore.YELLOW   # 黄Fore.BLUE     # 蓝Fore.MAGENTA  # 品红Fore.CYAN     # 青Fore.WHITE    # 白Fore.RESET    # 重置字体色
示例代码:
from colorama import Fore
print(Fore.RED + "红色文本")
print(Fore.GREEN + "绿色文本")
  • Back模块:
使用 Back 设置背景色。
Back.BLACK    # 黑Back.RED      # 红...(同 Fore 的常量)

示例代码:

from colorama import Back
print(Back.BLUE + "蓝色背景的文本")
  • Style模块

使用 Style 设置文本样式。

Style.DIM      # 暗淡Style.NORMAL   # 正常Style.BRIGHT   # 高亮Style.RESET_ALL  # 重置所有样式

示例代码:

from colorama import Style
print(Style.BRIGHT + "加粗文本")
print(Style.UNDERLINE + "下划线文本")

上述三个模块可以组合使用,同时设置前景色、背景色和样式。

print(Fore.YELLOW + Back.BLUE + Style.BRIGHT + "黄色文字在蓝色背景上")

可以使用上述colorama的常量简写来实现跨平台的彩色文本打印,也直接在代码中手动打印 ANSI 序列:

print('33[31m' + '一些红色文本')
print('33[39m'# 并恢复默认颜色


02
初始化

Windows终端使用时,需要先进行初始化操作,colorama提供了以下两种初始化方式:

  • just_fix_windows_console():

如果对Colorama的唯一要求就是让ANSI转义字符在Windows上运行,可以运行以下代码:

from colorama import just_fix_windows_console
just_fix_windows_console()
  • init():

也可以使用功能更多(但也有更多潜在问题)的旧接口:

from colorama import init
init()

另外,init()接受一些 **kwargs 来覆盖默认行为:

  • init(autoreset=False):如果设置为 True,每次打印后会自动重置颜色设置,避免后续打印内容受到颜色设置的影响。如果未设置autoreset=True,需要手动使用Style.RESET_ALL重置颜色。

  • init(strip=None):传递 True 或 False 来覆盖是否应该从输出中移除 ANSI 代码。默认行为是在 Windows 上或输出被重定向(不是终端)时移除。
  • init(convert=None):传递 True 或 False 来覆盖是否将输出中的 ANSI 代码转换为 win32 调用。默认行为是在 Windows 上并且输出是终端时进行转换。
  • init(wrap=True):如果设置为False,会禁用对sys.stdoutsys.stderr的包装。如果autoresetstripconvertTrue,则会启用包装。

03
示例

在终端中进行文本格式化时,可以使用格式化字符串的方式对文本进行对齐、布局控制等操作。

from colorama import init, Fore, Back, Style, just_fix_windows_console
from time import sleep

# 初始化(Windows 必选,其他平台可选)
just_fix_windows_console() # 初始化方式一
# init(autoreset=True)  # 初始化方式二:自动重置样式

# 颜色列表
colors_list = [Fore.RED, Fore.GREEN, Fore.YELLOW, Fore.BLUE, Fore.MAGENTA, Fore.CYAN]

# 打印文本
for color in colors_list:
    # 打印居中对齐的文本
    print('{:^40}'.format(color + '居中对齐的文本'))
    # print(color + '变色文本')
    sleep(1) # 暂停一秒

终端输出效果如下所示:


更多内容可以前往GitHub查看:

https://github.com/tartley/colorama


本篇文章来源于微信公众号: 码农设计师

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments