page contents

Rich终端美化库:Python命令行应用的彩色输出与进度条显示增强工具

前两天在做数据处理脚本 黑漆漆的终端让我抓狂。几千行日志滚来滚去 重要信息完全看不清。那种感觉就像在煤矿里找钻石。

attachments-2025-10-kmFSmf5d68f19cebdbef3.png

前两天在做数据处理脚本 黑漆漆的终端让我抓狂。几千行日志滚来滚去 重要信息完全看不清。那种感觉就像在煤矿里找钻石。

同事路过看了一眼:"这啥玩意儿 能看懂吗?" 我只能苦笑。确实 那些白花花的文字密密麻麻堆在一起 谁能受得了。

01

Rich这个库就是为了解决这种痛苦而生的。

第一次用它的时候 我简直被震撼到了。原来Python的终端输出可以这么美 这么直观。就像从黑白电视突然换成了4K彩电。

from rich.console import Console
from
 rich.text import Text

console = Console()

# 基础彩色输出

console.print("普通文字", style="white")
console.print("成功信息", style="bold green")
console.print("警告信息", style="bold yellow"
console.print("错误信息", style="bold red")

# 更丰富的样式组合

text = Text("这是一段")
text.append("彩色", style="bold blue")
text.append("文字", style="italic magenta")
console.print(text)

这代码运行起来 效果立竿见影。不同类型的信息用不同颜色区分 一眼就能看出哪些重要。

02

进度条功能让我彻底爱上了Rich。

以前写批处理脚本 用户总是问:"到底跑完没啊?" 我也不知道啊 只能看进程还在不在跑。

from rich.progress import track
import
 time

# 简单进度条

items = range(100)
for
 item in track(items, description="处理中..."):
    time.sleep(0.1)  # 模拟处理时间

# 更详细的进度条

from
 rich.progress import Progress, SpinnerColumn, TextColumn

with
 Progress(
    SpinnerColumn(),
    TextColumn("[progress.description]{task.description}"),
    "[progress.percentage]{task.percentage:>3.0f}%"

    console=console
) as progress:
    task = progress.add_task("下载文件", total=1000)
    
    for
 i in range(1000):
        time.sleep(0.01)
        progress.update(task, advance=1)

现在好了 进度条实时显示处理进度 用户心里有数 我也不用被催了。

真是解放了双方。

03

表格功能简直是数据展示的神器。

from rich.table import Table

table = Table(title="用户数据统计")
table.add_column("姓名", justify="left", style="cyan")
table.add_column("年龄", justify="right", style="magenta"
table.add_column("城市", justify="center", style="green")

# 添加数据行

table.add_row("张三" "25" "北京")
table.add_row("李四" "30" "上海"
table.add_row("王五" "28" "深圳")

console.print(table)

以前输出数据都是一堆数字和文字混在一起 现在用表格整齐展示 看起来专业多了。老板都夸我的报告做得好。

04

Panel和语法高亮让代码展示更优雅。

from rich.panel import Panel
from
 rich.syntax import Syntax

# 创建面板

panel_content = "这是一个重要提示\n请仔细阅读相关说明"
panel = Panel(panel_content, title="注意事项", border_style="red")
console.print(panel)

# 语法高亮

code = '''
def hello_world():
    print("Hello, Rich!")
    return True
'''


syntax = Syntax(code, "python", theme="monokai", line_numbers=True)
console.print(syntax)

这功能在做技术分享的时候特别有用。代码高亮显示 逻辑清晰 同事们都说比PPT还好看。

有一次项目演示 客户看到这些精美的终端输出 直接说:"你们这技术看起来很专业啊。"

心里那个美。

05

实际项目中 我会这样组合使用Rich的各种功能:

from rich.console import Console
from
 rich.progress import track
from
 rich.panel import Panel
from
 rich.table import Table
import
 time

console = Console()

def
 process_data_files():
    console.print(Panel("开始处理数据文件", title="任务开始", style="green"))
    
    files = ["data1.csv" "data2.csv" "data3.csv" "data4.csv"]
    results = []
    
    for
 file in track(files, description="处理文件中..."):
        # 模拟文件处理

        time.sleep(1)
        results.append({
            "文件名"
: file,
            "状态"
 "完成" 
            "行数"
 1000 + len(file) * 100
        })
    
    # 显示结果表格

    table = Table(title="处理结果")
    table.add_column("文件名", style="cyan")
    table.add_column("状态", style="green")
    table.add_column("行数", justify="right", style="magenta")
    
    for
 result in results:
        table.add_row(result["文件名"], result["状态"], str(result["行数"]))
    
    console.print(table)
    console.print("✅ 所有文件处理完成!", style="bold green")

if
 __name__ == "__main__"
    process_data_files()

这样的输出既专业又直观 同事们都说比以前那些干巴巴的日志好太多了。

Rich还支持很多高级功能 比如布局管理、实时刷新、emoji支持等等。用起来确实能让命令行程序变得生动有趣。

现在每次写Python脚本 我都会优先考虑用Rich来美化输出。毕竟 好看的程序总是让人心情愉悦的。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2025-10-17 09:33
  • 阅读 ( 24 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1479 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 2228 文章
  3. Pack 1479 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章