Python命令行程序如何添加色彩——使用cfonts库

This is a Python port of cfonts

  • 支持多至 7 种字体
  • ANSI 颜色支持
  • 可用于 Banner/CLI 欢迎界面

GITHUB: https://github.com/frostming/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

核心要点:

  1. 两种输出方式render()返回字符串,say()直接输出
  2. 颜色设置colors参数接受颜色名称列表或十六进制值
  3. 字体样式font参数支持block/simple/3d/chrome等多种样式
  4. 对齐方式align参数控制左/中/右对齐
  5. 渐变效果gradient参数实现平滑颜色过渡

对比其他方案:

  • 比colorama更专注于艺术字效果
  • 比termcolor提供更多字体样式
  • 支持渐变和背景色设置

一句话建议: cfonts适合需要醒目标题和艺术字效果的命令行程序。


变 90 坦克了 哈哈

我也想到这个,可以尝试用这个仿造一个出来啊。

回到顶部