大数跨境

我使用 rich 和 pyfiglet 在 Python 中构建了一个静态 CLI 仪表板 - 看起来很呆板,但运行起来很智能

我使用 rich 和 pyfiglet 在 Python 中构建了一个静态 CLI 仪表板 - 看起来很呆板,但运行起来很智能 索引目录
2025-05-26
2
导读:关注【索引目录】服务号,更多精彩内容等你来探索!你有没有想过,你的终端看起来像个科幻控制面板?我就是。

关注【索引目录】服务号,更多精彩内容等你来探索!

你有没有想过,你的终端看起来像个科幻控制面板?我就是。所以,我构建了一个基于 Python 的 CLI 仪表盘,用来显示系统状态和任务——说实话,它看起来真酷 。

您所需要的只是 Python 和一些强大的库:rich、pyfiglet 和 psutil。

(想象一下,它在黑暗的房间里发光,你喝着咖啡,假装自己身处黑客电影中 )



技术栈<br/>rich:用于漂亮的布局、表格、面板和颜色<br/>pyfiglet:用于 ASCII 艺术标题<br/>psutil:用于提取系统级数据
Python 的platformdatetimeconsole.clear()魔法

功能
系统信息面板
在彩色表格中显示您的操作系统、处理器、机器类型和启动时间。

任务跟踪器
用于跟踪当前操作(如模型训练、同步作业等)的可视化表格。

✨ 漂亮的布局
得益于rich.layout,仪表板分为整齐的部分:页眉、正文(左和右)和页脚。

Nerdy Footer Message
因为我们都需要一点“所有系统正常运行 ”的动力。

代码:

import pyfiglet
from rich.console import Console
from rich.table import Table
from rich.panel import Panel
from rich.layout import Layout
from rich.text import Text
import psutil
import platform
from datetime import datetime
# Initialize console
console = Console()
layout = Layout()
# Layout structure
layout.split(
    Layout(name="header", size=3),
    Layout(name="body", ratio=2),
    Layout(name="footer", size=3),
)
layout["body"].split_row(
    Layout(name="left"),
    Layout(name="right"),
)
# ---------- HEADER ----------
ascii_banner = pyfiglet.figlet_format("CLI Dashboard", font="slant")
layout["header"].update(Panel(Text(ascii_banner, justify="center"), style="bold cyan"))
# ---------- LEFT: SYSTEM STATS ----------
def get_system_stats():
    uname = platform.uname()
    boot_time = datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")
    stats = Table(title="  System Information", title_style="bold magenta")
    stats.add_column("Property", style="cyan", no_wrap=True)
    stats.add_column("Value", style="green")
    stats.add_row("System", uname.system)
    stats.add_row("Node Name", uname.node)
    stats.add_row("Release", uname.release)
    stats.add_row("Version", uname.version)
    stats.add_row("Machine", uname.machine)
    stats.add_row("Processor", uname.processor)
    stats.add_row("Boot Time", boot_time)
    return stats
layout["left"].update(get_system_stats())
# ---------- RIGHT: TASK TABLE ----------
task_table = Table(title="  Tasks", title_style="bold magenta")
task_table.add_column("Task", style="cyan", no_wrap=True)
task_table.add_column("Status", style="green")
task_table.add_column("Progress", justify="right", style="yellow")
task_table.add_row("Data Sync", "✅ Complete", "100%")
task_table.add_row("Model Training", "⚙️ Running", "76%")
task_table.add_row("Report Generation", "⏳ Pending", "0%")
layout["right"].update(task_table)
# ---------- FOOTER ----------
footer_panel = Panel("[bold cyan]All systems operational.  \nGenerated by your Python CLI dashboard.[/bold cyan]",
                     title="Status", border_style="blue")
layout["footer"].update(footer_panel)

# ---------- DISPLAY ----------
console.clear()
console.print(layout)

输出:



抱歉,开发人员无法分享输出,因为它包含有关我的机器的一些敏感信息。

您可以随意复制、自定义和扩展它。比如添加内存使用情况统计信息?集成 API?或者添加动画进度条?

演示
想看看实际效果吗?
只需运行:

pip install rich pyfiglet psutil
python dashboard.py

我为什么要构建这个?
说实话,因为终端里的仪表盘很令人满意。

此外,这是一种有趣的方式:

练习丰富的布局技巧。
展示 Python 打造精美 CLI 工具的能力。
以有趣、轻量、可视化的方式跟踪任务。

快来交流吧!
如果你觉得这个有用,就点个 或者留言!
我很想看看你如何把它扩展成你自己的版本。


关注【索引目录】服务号,更多精彩内容等你来探索!


【声明】内容源于网络
0
0
索引目录
索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
内容 444
粉丝 0
索引目录 索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
总阅读838
粉丝0
内容444