如何在 Python 中正确使用 Colorama 实现终端彩色输出

发布时间 - 2026-01-20 00:00:00    点击率:

colorama 在 windows 终端中可能因 ansi 支持问题导致颜色失效,常见表现为打印出原始 ansi 转义序列(如 `[31msome red text`)。正确调用 `init(convert=true)` 并确保终端兼容性是关键解决方案。

Colorama 是一个轻量级跨平台库,用于在 Python 中向终端输出带颜色的文本和样式。但在 Python 3.12 及较新 Windows 系统(尤其是 Windows 10/11 默认的 Windows Terminal 或 CMD/PowerShell 启用有限 ANSI 支持时),若初始化不当,颜色不会渲染,反而会直接显示 ANSI 控制序列(例如 \x1b[31msome red text),这就是你看到“随机字母字符串”的根本原因。

✅ 正确用法如下:

from colorama import init, Fore, Back, Style

# 必须在所有颜色输出前调用,且推荐显式启用 convert=True
init(convert=True)

print(Fore.RED + "这行文字将显示为红色")
print(Back.GREEN + Fore.BLACK + "绿色背景 + 黑色文字")
print(Style.RESET_A

LL + "恢复默认样式") # 强烈建议结尾重置

⚠️ 注意事项:

  • init() 应仅调用一次,且必须在首次使用 Fore/Back/Style 之前执行;
  • convert=True 参数对旧版 Windows 控制台(如传统 CMD)至关重要,它会自动注入 Win32 API 调用来启用颜色支持;
  • 若你在 VS Code 终端、Windows Terminal 或较新 PowerShell 中运行仍无效,请检查是否启用了“ANSI 颜色支持”(通常默认开启),或尝试添加 autoreset=True:
    init(convert=True, autoreset=True)  # 自动为每条 print 末尾追加 Style.RESET_ALL
  • 避免在 Jupyter Notebook 或某些 IDE 内置终端中依赖 Colorama —— 它们不解析 ANSI 序列,此时应改用 rich 或 termcolor 等替代方案。

? 小结:Colorama 的“失效”几乎从不是 bug,而是环境适配问题。坚持 init(convert=True) + Style.RESET_ALL(或 autoreset=True)组合,即可稳定实现跨平台彩色输出。


# python  # windows  # win  # vs code  # red 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  音响网站制作视频教程,隆霸音响官方网站?  b2c电商网站制作流程,b2c水平综合的电商平台?  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  香港服务器网站推广:SEO优化与外贸独立站搭建策略  香港服务器如何优化才能显著提升网站加载速度?  Laravel storage目录权限问题_Laravel文件写入权限设置  深入理解Android中的xmlns:tools属性  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  Laravel怎么实现验证码(Captcha)功能  Python3.6正式版新特性预览  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  如何快速建站并高效导出源代码?  网站制作报价单模板图片,小松挖机官方网站报价?  Python文件流缓冲机制_IO性能解析【教程】  在centOS 7安装mysql 5.7的详细教程  如何在阿里云服务器自主搭建网站?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  网站图片在线制作软件,怎么在图片上做链接?  如何在云主机快速搭建网站站点?  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  如何打造高效商业网站?建站目的决定转化率  大型企业网站制作流程,做网站需要注册公司吗?  详解Android图表 MPAndroidChart折线图  Python高阶函数应用_函数作为参数说明【指导】  千库网官网入口推荐 千库网设计创意平台入口  Laravel如何保护应用免受CSRF攻击?(原理和示例)  如何快速配置高效服务器建站软件?  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  Thinkphp 中 distinct 的用法解析  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  用v-html解决Vue.js渲染中html标签不被解析的问题  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  javascript中闭包概念与用法深入理解  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  Laravel如何实现一对一模型关联?(Eloquent示例)  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  大同网页,大同瑞慈医院官网?  详解阿里云nginx服务器多站点的配置  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作