Python3使用print命令时如何修改输出文本颜色,类似shell脚本tput效果
问题解答
Python3完全可以实现类似bash的终端打印颜色修改效果,以下是两种常用实现方案:
方案1:原生ANSI转义序列(无需安装第三方依赖)
终端支持ANSI转义序列的前提下,可以直接在打印内容中插入颜色控制码,使用后需要加重置码恢复默认颜色,避免后续输出都被染色。
常用颜色控制码:
- 绿色前景色:
\033[92m - 红色前景色:
\033[91m - 重置默认样式:
\033[0m
修改后的代码示例:
for TOPIC in list: if str(val) in TOPIC: word = TOPIC.split()[1] # 绿色输出成功信息 print("\033[92mTopic " + word + " is successfully configured\033[0m") else: try: word = TOPIC.split()[1] # 红色输出错误信息 print("\033[91mTopic " + word + " bad configuration\033[0m") except IndexError: pass
方案2:使用colorama库(适配多平台,兼容性更好)
如果需要兼容Windows等默认不开启ANSI支持的平台,可以使用第三方库colorama,它会自动处理不同系统的终端适配。
使用步骤:
- 安装库:执行命令
pip install colorama - 修改代码如下:
from colorama import init, Fore # 初始化colorama,自动适配终端 init(autoreset=True) # autoreset参数设置为True后,每次打印结束会自动重置颜色,不用手动加重置码 for TOPIC in list: if str(val) in TOPIC: word = TOPIC.split()[1] print(Fore.GREEN + "Topic " + word + " is successfully configured") else: try: word = TOPIC.split()[1] print(Fore.RED + "Topic " + word + " bad configuration") except IndexError: pass
注意:如果是将输出重定向到文件等非终端场景,颜色控制码会变成乱码,可提前判断输出目标是否为终端再决定是否添加颜色控制。
内容的提问来源于stack exchange,提问作者jessica
相关产品推荐
相关产品推荐

