发布时间:2026/9/3 8:09:27
Python生态下CLI/TUI工具:Rich、Textual、alive-progress、tabulate、plotext、yaspin、Scroll Art Rich终端下的开源GitHub56.8K Star2.2K Fork富文本渲染工具官方文档。安装pip install rich示例fromrich.consoleimportConsolefromrich.tableimportColumn,Table consoleConsole()tableTable(show_headerTrue,header_stylebold magenta)table.add_column(Date,styledim,width12)table.add_column(Title)table.add_column(Production Budget,justifyright)table.add_column(Box Office,justifyright)table.add_row(Dev 20, 2019,Star Wars: The Rise of Skywalker,$275,000,000,$375,126,118)table.add_row(May 25, 2018,[red]Solo[/red]: A Star Wars Story,$275,000,000,$393,151,347,)table.add_row(Dec 15, 2017,Star Wars Ep. VIII: The Last Jedi,$262,000,000,[bold]$1,332,539,889[/bold],)console.print(table)Windows下的PowerShell展现效果Git Bash则没有字体颜色效果。Textual官网终端下的开源GitHub36.6K Star1.3K ForkReact/Vue在CLI模式下实现真正的交互式界面。内置组件Button按钮Input输入框DataTable表格支持排序、筛选Tree树形控件MarkdownViewer直接渲染MarkdownLog日志输出区域适用场景场景说明TUI工具比如数据库客户端、API测试工具系统监控面板实时显示CPU、内存、日志配置向导多步骤的交互式配置界面终端游戏用文本界面做小游戏数据浏览不想开浏览器终端里直接看表格框架用户taskipy任务管理工具TUItrogon自动把Click CLI转成交互界面django-admin增强工具部分项目在用对比库特点适合textual完整UI框架组件丰富复杂的交互式终端应用rich美化输出单次渲染打印漂亮的日志、表格plotext专门画图表快速看数据趋势prompt_toolkit构建命令行应用自动补全、语法高亮的REPL安装pip install textual注意事项终端要求需支持真彩色和鼠标事件Windows Terminal、iTerm2、GNOME Terminal都行老cmd不行学习曲线比 print() 复杂需要理解布局、事件、响应式变量这些概念不能做酷炫动画毕竟是字符界面没法做流畅的 60fps 动画入门示例fromtextual.appimportAppfromtextual.containersimportHorizontal,Verticalfromtextual.widgetsimportButton,Header,Footer,ProgressBarimportpsutilfromtextual.reactiveimportreactiveimportasyncioclassMyApp(App):defcompose(self):yieldHeader()yieldButton(点我一下,variantprimary)yieldFooter()defon_button_pressed(self,event):self.query_one(Button).label点过了MyApp().run()classLayoutApp(App):defcompose(self):withHorizontal():withVertical():yieldButton(左上)yieldButton(左下)withVertical():yieldButton(右上)yieldButton(右下)LayoutApp().run()classMonitorApp(App):defcompose(self):yieldProgressBar()asyncdefon_mount(self):whileTrue:cpupsutil.cpu_percent()self.query_one(ProgressBar).progresscpuawaitasyncio.sleep(1)MonitorApp().run()alive-progress开源GitHub6.3K Star234 Fork项目不同于普通tqdm进度条是文本动画进度百分比已用时间速度剩余时间估计等。可选进度条样式blocks、bubbles、fill、classic可选光标样式dots、classic、stars、arrows对比tqdm特性tqdmalive-progress简洁度⭐⭐⭐⭐⭐⭐⭐⭐⭐视觉效果普通炫酷自定义程度高很高知名度顶流小众依赖轻量稍重安装pip install alive-progress入门示例fromalive_progressimportalive_bar,alive_itimporttimewithalive_bar(100)asbar:foriinrange(100):time.sleep(0.03)bar()withalive_bar(100,title下载进度,barblocks,spinnerdots)asbar:foriteminalive_it(items,title遍历中):tabulate命令行里的开源GitHub2.6K Star195 Fork表格生成器。适用场景说明脚本输出结果比print好看一万倍CLI工具给用户看结构化的数据调试/临时查看快速看DataFrame或列表内容写文档/README用tablefmtpipe直接生成Markdown表格支持的表格形式包括plain纯文本适合日志simplegithub和pipe类似没有对齐冒号gridsimple_gridrounded_grid带圆角漂亮边框heavy_gridmixed_griddouble_gridfancy_gridoutlinesimple_outlinerounded_outlineheavy_outlinemixed_outlinedouble_outlinefancy_outlinepipeMarkdown适合文档orgtblasciidocjiraprestoprettypsqlrstmediawikimoinmoinyoutrackhtmlunsafehtmllatexlatex_rawlatex_booktabslatex_longtabletextiletsv安装pip install tabulate示例fromtabulateimporttabulate data[[张三,25,北京],[李四,30,上海],[王五,28,深圳]]h[姓名,年龄,城市]# tablefmt参数可指定上述36种格式print(tabulate(data,headersh,tablefmtgrid))# 数字默认右对齐文字默认左对齐手动指定print(tabulate(data,headersh,numaligncenter,stralignleft))示例图plotext在终端里画图表的开源GitHub2.2K Star90 Fork库主要目的是为科学可视化提供一个轻量高效且命令行友好的解决方案在GUI不可用或不切实际的环境中尤其有用如远程服务器、 高性能计算集群或嵌入式系统。通过将绘图渲染为ASCII或unicode字符能够对数据提供即时视觉反馈而无需复杂的显示协议或大量数据传输。特性支持多种图表类型包括折线图、散点图、柱状图、直方图、日期时间图如K线图丰富的绘图功能绘制误差线、混淆矩阵并在图表中添加额外的文本、线条和形状图像和视频支持支持在终端中绘制图像包括GIF动画和播放带有音频的视频包括YouTube视频保存图表可将图表保存为文本或彩色HTML格式无依赖性除图像和视频功能外无需额外依赖命令行工具提供专用命令行工具语法简洁其API设计类似于matplotlib易于上手实战可选依赖包包括pillow用于图像绘制opencv-python用于视频渲染ffpyplayer用于音频流pafy和youtube-dl用于YouTube流shtab用于TAB自动补全安装pipinstallplotext pipinstallplotext[image]pipinstallplotext[completion]绘制散点图正弦图示例importplotextasplt yplt.sin()plt.scatter(y,colorred,markero,labelysin(x))plt.title(Scatter Plot)plt.vline(100,magenta)plt.hline(0.5,blue)plt.plotsize(200,20)plt.show()plt.save_fig(./plot.txt)绘制柱状图示例pizzas[Sausage,Pepperoni,Mushrooms,Cheese,Chicken,Beef]percentages[14,36,11,8,7,4]plt.bar(pizzas,percentages)plt.title(Labelled Bar Plot using Text())[plt.text(pizzas[i],xi1,ypercentages[i]1.5,alignmentcenter,colorred)foriinrange(len(pizzas))]plt.ylim(0,38)plt.plotsize(100,30)plt.show()可通过构建子图的方式在同一个终端窗口中绘制多个图表。使用subplots(rows , cols)方法来构建网格再使用subplot()方法来访问指定行和列位置从子图矩阵的左上角开始计数起始索引为1的特定子图并确定在其中绘制的数据内容以及绘制方式。子图可嵌套即任何一个子图都可以创建属于它自己的子图矩阵。如要创建2×2的子图矩阵其中第一个子图本身又是一个3×4的子图矩阵可使用subplots(2, 2); subplot(1, 1); subplots(3, 4)或直接写成subplots(2, 2).subplot(1, 1).subplots(3, 4)。importnumpyasnp xnp.linspace(0,10,100)y1np.sin(x)y2np.cos(x)plt.subplots(2,1)plt.subplot(1,1)plt.plot(x,y1)plt.title(Sine Wave)plt.subplot(2,1)plt.plot(x,y2)plt.title(Cosine Wave)plt.show()使用image_plot(path)绘制图像play_gif(path)渲染GIF图像。注意事项在调用image_plot()前使用plotsize()方法尤其是对于较大的图像以便预先减小图像大小减轻计算负担如果希望绘制速度更快可设置fastTrue绘图尺寸将锁定为之前选择的大小不会适应终端或子图的大小后续的任何设置方法如xlabel()、frame()等都不会生效如果要绘制超出终端大小的图像请使用plt.limit_size()函数或使用其他库如tkinterpath./1.jpgplt.plotsize(64,64)plt.image_plot(path,markerlist(codedesigner),styleinverted,# grayscaleTrue # 灰度模式)plt.title(设计师)plt.show()plt.save_fig(./plot.html)yaspinYet Another Terminal Spinner for Python简写终端里的开源GitHub912 Star44 Fork动画加载播放器。内置动画dots、line、moon、arrow、bouncingBar、pong、earth地球转。库特点适合场景tqdm进度条有百分比知道总量、要显示进度yaspin转圈动画不知道总量只知道正在做不知道做多久rich.progress功能强大但重复杂的进度显示halo类似yaspin替代品安装pip install yaspin示例fromyaspinimportyaspinfromyaspin.spinnersimportSpinnersimporttimewithyaspin(text正在加载...,colorcyan):time.sleep(1)# 省略sleepwithyaspin(Spinners.dots,text处理中):withyaspin(Spinners.moon,text加载中):withyaspin(Spinners.arrow,text请稍候):custom{frames:[⣾,⣽,⣻,⢿,⡿,⣟,⣯,⣷],interval:80# 毫秒}withyaspin(custom,text自定义动画):time.sleep(1)withyaspin().white.bold.shark.on_blueassp:sp.textWhite bold shark in a blue seatime.sleep(2)yaspin(textLoading...)defsome_operations():time.sleep(3)some_operations()spinneryaspin(text启动中...)spinner.start()spinner.text加载配置...spinner.ok(✅完成)Scroll Art终端打印输出ASCII动画PyPi。支持调参数如改速度、改宽度starfield星际穿越那种星空星星密度还会变化ducklings一群小鸭子在屏幕上乱跑萌到爆炸matrix经典的数字雨瞬间觉得自己是尼奥dna双螺旋结构旋转程序员也能玩生物pac_wall吃豆人风格的墙体动画snail_trail蜗牛爬过留下的黏液痕迹安装pip install scrollart命令行示例python-mscrollart ducklings python-mscrollart matrix效果图

相关新闻

2026/9/3 7:07:56

21天学pcie--PCIe 设备是如何被“发现”的?(枚举机制)

目录 第 4 篇:PCIe 设备是如何被“发现”的?(枚举机制) 一、先抛一个问题:系统怎么知道你插了什么卡? 二、一句话先给结论 三、PCIe 拓扑回顾(非常重要) 四、Bus / Device / Function(BDF)编号规则 五、枚举的核心目标 六、枚举流程(一步一步来) Step 1:从…

2026/9/1 4:01:46

Windows系统文件CompPkgSup.dll丢失找不到问题解决

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

2026/8/31 0:04:52

code0 gemini-3.1-pro-preview 场景相关:企业培训课件内容生成指南

做企业培训课件,难点其实很少只是“做一份 PPT”。真正麻烦的地方在于,怎么把业务知识、岗位要求、培训目标和考核方式串起来,变成一套学员能学、讲师能讲、企业还能反复使用的内容体系。 过去,培训负责人往往要从制度文件、产品手…

2026/9/3 8:07:35

Java EE 进阶:2.1 HTML

目录 1.HTML 1.1 HTML基础 1.1.1 什么是HTML 1.1.2 认识 HTML 标签 1.1.3 HTML 文件基本结构 1.1.4 标签层次结构 1.2 HTML 快速入门 1.2.1 开发工具 1.2.2 快速开发 1.3 HTML 常见标签 1.3.1 标题标签 h1-h6 1.3.2 段落标签:p 1.3.3 换行标签&#xf…

2026/9/3 8:07:35

知识蒸馏(KD)瘦身都瘦在哪里了?

知识蒸馏(Knowledge Distillation,KD)定义 学术标准定义 知识蒸馏是一种模型迁移与模型压缩技术:利用一个能力强、参数量大的教师模型(Teacher),将它学到的隐式知识(暗知识&#x…

2026/9/3 8:07:35

codex和ChatGPT的简易操作

Skills步骤方案使用,任务执行说明步骤可以理解为他是操作的一个方式流程调用方式,聊天框输入$插件的使用比如 Browser 插件不仅仅是一份说明书,它还真的可以打开浏览器、点击网页、截图、读取页面内容。使用方式:Browser 打开 Canva 模板网站…

2026/9/3 8:07:35

系统门窗选购全解析:从核心部件到避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/3 8:02:34

匠芯创Luban/Luban lite开发环境搭建

一、开发环境 1、获取源码 1.1、下载源码 另外记得设置权限 sudo chown -R $USER:$USER xxx1.1.1、Luban 官方地址 git clone https://gitee.com/artinchip/d211.git git clone gitgitee:artinchip/d211.git工程结构 ├── dl --> 第三方…

2026/9/1 16:02:17

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/9/2 9:00:32

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/2 8:41:06

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/3 0:02:06

零基础装 OpenClaw 小龙虾 AI:Windows 一键部署教程与避坑要点

Windows 部署 OpenClaw 完整教程|本地 AI 智能体 5 分钟落地,环境配置一次搞定 版本说明:Windows 3.1.0 / Mac 2.7.9 写在前面 近两年开源 AI 领域有一款被称作「数字员工」的工具持续走热,它就是 OpenClaw,圈内人更习…

2026/9/3 0:02:06

Hermes Agent 本地部署新方案:Windows 整合包减少依赖报错

Windows 本地部署 Hermes 太麻烦?这版一键包 5 分钟快速跑通 很多人想体验 Hermes Agent,但真正开始部署时,往往会卡在环境配置这一步。 需要安装各类依赖、调试运行环境、处理路径问题,还容易遇到命令行报错、系统拦截、文件缺…

2026/9/3 0:02:06

实测 OpenClaw 一键包,5 分钟完成本地自动化环境搭建

OpenClaw 本地 AI 自动化工具部署指南|使用一键包规避环境配置难题 痛点:部署 AI 自动化工具常常要处理 Python、Node.js 各类依赖,版本冲突、环境配置耗费大量时间,OpenClaw 提供一键安装包,降低部署门槛。 适配系统&…

2026/9/2 1:15:22

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/2 1:15:22

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/2 1:15:20

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…