Python命令行程序如何添加色彩——使用cfonts库
Python命令行程序如何添加色彩——使用cfonts库
3 回复
#!/usr/bin/env python3
"""
Python命令行程序添加色彩——使用cfonts库示例
cfonts库专门用于创建带样式的控制台文本,支持颜色、背景色、字体样式等
"""
from cfonts import render, say
def basic_usage():
"""基础用法示例"""
# 1. 使用render()函数获取渲染后的字符串
result = render('Hello', colors=['red', 'yellow'], align='center')
print(result)
# 2. 使用say()函数直接输出(类似print)
say('World', colors=['blue', 'cyan'], align='center')
def advanced_features():
"""高级功能示例"""
# 渐变颜色
result = render(
'Gradient Text',
colors=['red', 'green', 'blue'], # 渐变颜色列表
align='center',
gradient=['#ff0000', '#00ff00'] # 十六进制颜色渐变
)
print(result)
# 背景色和字体样式
result = render(
'Styled Text',
colors=['white'],
background='blue', # 设置背景色
align='left',
font='block' # 字体样式:block/simple/3d等
)
print(result)
def practical_example():
"""实际应用示例:日志级别颜色区分"""
def colored_log(message, level='INFO'):
colors_map = {
'INFO': ['blue'],
'SUCCESS': ['green'],
'WARNING': ['yellow'],
'ERROR': ['red'],
'CRITICAL': ['red', 'white'] # 红底白字
}
result = render(
f'[{level}] {message}',
colors=colors_map.get(level, ['white']),
align='left',
font='simple'
)
print(result)
# 测试不同级别的日志
colored_log('程序启动完成', 'SUCCESS')
colored_log('发现配置文件', 'INFO')
colored_log('磁盘空间不足', 'WARNING')
colored_log('数据库连接失败', 'ERROR')
def custom_configuration():
"""自定义配置示例"""
# 完整参数配置
result = render(
'Custom Style',
colors=['cyan', 'magenta'],
align='center',
background='transparent', # 透明背景
font='chrome', # 字体类型
line_height=1, # 行高
space=True, # 是否保留空格
max_length=50 # 最大长度
)
print(result)
if __name__ == '__main__':
print("=== 基础用法 ===")
basic_usage()
print("\n=== 高级功能 ===")
advanced_features()
print("\n=== 实际应用:彩色日志 ===")
practical_example()
print("\n=== 自定义配置 ===")
custom_configuration()
安装cfonts库:
pip install python-cfonts
核心要点:
- 两种输出方式:
render()返回字符串,say()直接输出 - 颜色设置:
colors参数接受颜色名称列表或十六进制值 - 字体样式:
font参数支持block/simple/3d/chrome等多种样式 - 对齐方式:
align参数控制左/中/右对齐 - 渐变效果:
gradient参数实现平滑颜色过渡
对比其他方案:
- 比colorama更专注于艺术字效果
- 比termcolor提供更多字体样式
- 支持渐变和背景色设置
一句话建议: cfonts适合需要醒目标题和艺术字效果的命令行程序。
变 90 坦克了 哈哈
我也想到这个,可以尝试用这个仿造一个出来啊。


