还在对着黑白单调的命令行输出发愁?想让脚本的日志、提示信息一眼就能抓住重点?
今天给大家安利一个Python宝藏库——Colorama!它能让你轻松在终端输出彩色、带样式的文本,跨平台兼容无压力,让命令行工具的颜值和实用性直接拉满~
🌈 1分钟上手:安装+初始化
Colorama的使用门槛极低,pip一键安装,初始化后自动适配Windows、Mac、Linux所有平台,不用操心系统差异!
# 安装命令(终端执行)
pip install colorama
# 代码初始化
from colorama import init
init(autoreset=True) # autoreset=True:自动重置样式,避免颜色污染
print("Colorama初始化完成,现在可以输出彩色文本啦~")
运行结果:
Colorama初始化完成,现在可以输出彩色文本啦~
🎨 核心用法:3大组件玩转颜色与样式
Colorama的核心就3个常量类,通过字符串拼接就能组合出想要的效果,上手零难度!
1. 基础组件说明
2. 快速示例
from colorama import Fore, Back, Style
# 单独设置文字颜色
print(Fore.RED + "🔴 红色警告信息")
print(Fore.GREEN + "🟢 绿色成功信息")
print(Fore.BLUE + "🔵 蓝色通知信息")
# 组合背景色+样式
print(Back.YELLOW + Fore.BLACK + "⚫ 黑字黄底提示")
print(Style.BRIGHT + Fore.MAGENTA + "💜 加粗洋红色文字")
运行效果:
依次显示红色、绿色、蓝色文字,黑字黄底提示,以及加粗洋红色文字,视觉区分超明显~
🛠️ 实战场景:让输出更实用
Colorama最香的地方的是融入实际开发,比如用颜色区分日志级别、美化进度条,大幅提升用户体验!
场景1:彩色日志分类
用不同颜色标记INFO、WARNING、ERROR,一眼分清日志重要性:
from colorama import Fore
# 定义日志函数
deflog_info(msg):
print(Fore.GREEN + f"[INFO] {msg}")
deflog_warning(msg):
print(Fore.YELLOW + f"[WARNING] {msg}")
deflog_error(msg):
print(Fore.RED + f"[ERROR] {msg}")
# 调用示例
log_info("程序启动成功 ✅")
log_warning("磁盘空间不足 ⚠️")
log_error("连接数据库失败 ❌")
场景2:动态彩色进度条
给脚本加个进度条,直观展示执行状态:
import time
from colorama import Fore
print(Fore.CYAN + "📊 任务执行中...")
for i inrange(1, 6):
# 拼接进度条字符
progress_bar = f"[{'#'*i}{'.'*(5-i)}]"
print(Fore.CYAN + f"进度: {progress_bar}{i*20}%", end="\r")
time.sleep(0.5)
print(Fore.CYAN + "进度: [#####] 100%")
print(Fore.GREEN + "任务完成!🎉")
运行效果:
青色进度条动态刷新,完成后显示绿色提示,视觉体验拉满~
⚙️ 精细控制:手动重置样式
如果不想用autoreset=True全局自动重置,也可以手动控制样式范围,灵活度更高:
from colorama import Fore, Style
# 手动重置,仅让部分文字变色
print(Fore.RED + "这段文字是红色的" + Style.RESET_ALL)
print("这段文字恢复默认颜色")
# 颜色延续效果(不自动重置时)
init(autoreset=False) # 关闭自动重置
print(Fore.BLUE + "蓝色文字", end="")
print(" 这段文字也会是蓝色(颜色延续)")
print(Style.RESET_ALL + "颜色已手动重置")
⚖️ 为什么选Colorama?优势一目了然
- 1. 跨平台兼容:完美支持Windows、Mac、Linux,不用写平台适配代码
- 2. 用法极简:语义化常量(Fore.RED、Back.YELLOW),比直接写ANSI码好记10倍
- 3. 灵活控制:支持自动重置和手动重置,满足不同场景需求
尤其适合写脚本工具、命令行程序的同学,用颜色高亮关键信息,用户体验直接升级!
💬 互动时间
你平时写命令行程序时,会用颜色区分哪些信息?是日志、进度条,还是其他创意场景?
欢迎在评论区分享你的用法,也可以说说你想给终端文本加什么样式~ 觉得有用的话,别忘了收藏+转发给身边的Python小伙伴呀!