Python生态下CLI/TUI工具:Rich、Textual、alive-progress、tabulate、plotext、yaspin、Scroll Art

发布时间:2026/10/31 12:12:51

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/10/31 12:08:34

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

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

2026/10/31 12:10:12

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

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

2026/10/25 10:18:34

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

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

2026/10/31 12:09:10

物理AI技术:多模态感知与工业智能化的未来

1. 物理AI技术爆发的产业背景 2026年将成为物理AI技术发展的关键转折点,这背后有着深刻的产业逻辑和技术积累。物理AI(Physical AI)是指将人工智能技术与物理世界中的实体系统深度融合的技术范式,它正在重塑从制造业到服务业的各个…

2026/10/31 12:09:10

Frida移动安全分析:从基础连接到高级Hook实战指南

1. Frida常用命令全景指南作为移动安全分析领域的瑞士军刀,Frida的命令行工具链提供了从基础连接到高级Hook的全套解决方案。让我们从实战角度剖析这些命令的深层应用逻辑。1.1 环境准备与设备连接设备连接是Frida工作的基础,不同场景需要采用不同的连接…

2026/10/31 12:09:10

DSH-Resume:实现CC、codex、pi会话无缝衔接的归一化中间格式方案

1. 会话接力的真实痛点与 DSH-Resume 的定位 做过 AI 编程助手深度使用的人,大概率都经历过这种场景:在 CC 里跟模型来回聊了半小时,上下文里塞满了项目结构、报错日志、已经试过的方案,结果想换到 codex 上跑一段更长的推理&…

2026/10/31 12:09:10

制造业数智化质量管控系统架构与实施指南

1. 生产线数智化质量管控的核心价值 现代制造业正面临前所未有的转型压力,消费者对产品质量的要求日益严苛,传统人工抽检方式已难以满足需求。我们车间去年因漏检导致的产品召回事件直接损失超过300万元,这个教训促使我们全面转向智能化质量管…

2026/10/31 12:09:10

OpenAI dots:云端AI操作系统与ISAC架构解析

1. 这不是“又一个AI玩具”:OpenAI dots的真实定位与能力边界你刷到这个标题时,第一反应可能是——“又是营销话术”。我完全理解。过去两年,从Copilot到Cursor,从Claude Code到CodeWhisperer,太多工具打着“AI编程助手…

2026/10/31 12:04:09

2026年AI科研前沿:神经符号系统与多模态因果推理

1. 2026年AI科研方案全景解析 2026年的AI科研领域正在经历一场范式转移,从单一模型优化转向系统性创新架构设计。根据最新研究趋势,三大技术支柱构成了当前最前沿的科研方案:神经符号系统融合、多模态因果推理和生物启发计算架构。这些方案正…

2026/10/30 20:55:10

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/30 20:55:10

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/30 20:55:09

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/31 0:02:41

猫狗目标检测数据集:VOC/COCO/YOLO三格式一体化实战包

简介:本资源是一套面向计算机视觉初学者与YOLO目标检测实践者的猫狗图像数据集及配套开发工具包,专为快速上手目标检测模型训练而设计。资源包含1000张真实场景高清猫狗图片,标注质量高,同时提供VOC(XML)、…

2026/10/31 0:02:41

HDU2017多校标程复现:算法竞赛工程化真题沙盒

简介:本资源为2017年HDU多校联合训练第一场官方配套资料,面向ACM程序设计竞赛备赛学生、算法爱好者及高校编程集训队成员,旨在提供权威解题参考与完整测试验证环境。压缩包共40个文件,含15份C标程(覆盖全部赛题&#x…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑