|
视频版: 之前我们介绍过几种显示进度条的方法: 其中在tqdm模块时提到,用tqdm.rich可以得到彩色的进度条:
![]() 这个.rich,其实是用到了另一个更加奇葩的模块。今天我就来盘一盘这个rich模块。 Rich 模块的文档里是这么写的:
老规矩,先用pip命令安装一下: pip install rich 最简单的用法,就是导入 rich 中的 print 覆盖原函数,这就能让你的控制台输出更加的优雅。而且,你还可以通过标签来手动指定输出字符的颜色和样式:
![]() 当然 rich 的功能不止如此。比如: 可以用 rich.inspect 查看模块、类型或函数的文档说明: from rich import inspectinspect(list, methods=True) ![]() 还能用来查看运行中实例的各项属性值:
![]() 方便又清晰。 rich.logging 可以优化日志的输出,只需要多加一个handler参数,不同级别的日志一目了然:
![]() rich.traceback 则可以让你的程序报错信息更容易阅读。你要做的也仅仅是多加一行代码而已: from rich import tracebacktraceback.install(show_locals=True)1 / 0 ![]() 自从用了rich库,小白再也不担心女朋友说他整天对着一块黑白屏幕了。(因为他本来就没有女朋友) 除了对控制台的输出文字进行美化之外。rich 还提供了一些特殊格式的显示支持。比如之前视频讲过的进度条。 ![]() 对于不方便计算具体进度的情况,也可以用 rich.spinner 来添加一个加载动画,让你的程序告别枯燥的等待。 ![]() 相比于默认的逐行输出,rich 的一大特性是可以在固定位置上更新显示。这就可以让输出呈现出更加动态的效果,比如实现这样一个系统资源的监控程序。
如果你想在控制台中输出表格类的二维数据,那你一定会喜欢上 rich.table。对比用print手动排版输出,这真是的降维打击了:
![]() 试想一下,如果程序设计相关的课程作业,你交上一份这样的输出,助教还不得给你多加10分。 此外,rich 还支持类似于: 给输出添加边框: from rich import printfrom rich.panel import Panelprint(Panel.fit("毛衣\n背带裤", title="中分灰发", subtitle="鸡脚"))![]() 多列输出:
![]() 树形结构输出: ![]() 对代码进行语法高亮输出:
![]() markdown 格式输出: python -m rich.markdown README.md ![]() 等等等等…… 这里我就不再一一演示,rich的文档中提供了详细的说明和具体的演示示例,大部分效果都只需要简单几行代码就能搞定。 ![]() rich 的跨平台支持也做得很好。写一份代码,就可以分别在windows控制台、mac终端,以及jupyter网页上正常运行。 不过在pycharm里运行时,需要在设置里勾选上“在输出控制台中模拟终端”,否则无法正常起作用。 ![]() 有人可能要说了:控制台不就是输出一些调试信息,给开发人员自己看的嘛,还这么折腾干嘛? 控制台输出好不好看的确不影响程序的功能。但借用乔布斯说过的一句话:“优秀的木匠不会用劣质木板去做柜子的背板,即使没人会看到。”这句话放在编程上也是一样。你可以选择只实现功能需求,也可以选择让程序更具有可读性、可维护性、可扩展性,占用资源更少,执行效率更高。 很多优秀产品的背后,都离不开这种吹毛求疵的折腾。 这大概就是“码农”和“程序设计师”的区别吧。 随着AI的发展,码农的工作逐渐会被替代,而程序设计师仍会在很长时间内不可或缺。 看到这里还没有离开的小伙伴,想必也是具备如此精益求精的自我修养吧? 如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~ |
|
|