alive progress-具有实时吞吐量和非常酷的动画新型的进度条python库
alive progress是一种具有实时吞吐量和非常酷的动画新型的进度条python库。
您是否曾经在远程ssh会话中发现自己,做了一些冗长的操作,然后不时地感到需要进入[输入]以确保您不会失去连接?有没有想过您的处理在哪里,何时完成?是否曾经需要暂停进度条一段时间,返回python REPL进行手动检查或修复项目,然后像从未发生过的那样恢复过程?
我制作了这个很酷的进度条,考虑了所有这些问题,活动的进度条!:)
alive progress的特点
我喜欢将其视为python的一种新型进度条,因为它具有以下优点:
一个很酷的实时微调器,它清楚地表明您的漫长过程没有挂起,并且ssh连接正常。
当旋转器根据实际处理速度运行得更快或更慢时,对当前速度/吞吐量的视觉反馈;
一个有效的多螺纹杆,其在所述实际速度的一小部分来更新自身(每秒相当于百万迭代以每秒刷新速率大约60帧),以保持CPU使用率较低,避免终端滥发; (📌 新功能:您现在可以对此进行校准!)
预期到达时间(ETA),采用智能指数平滑算法,以最友好的方式显示剩余的处理时间;
一个print()钩子和(📌新增)日志记录支持,该功能允许在动画栏的中间轻松地打印语句和消息,自动清理屏幕,甚至在出现当前位置时丰富屏幕内容;
处理完成后,将打印一张不错的收据,其中包含该运行的统计信息,包括经过时间和观察到的吞吐量;
它跟踪所需的计数(不一定是实际的迭代)以检测上溢和下溢,因此,如果发送的数量少于或大于预期,则外观会有所不同;
它会自动检测是否有分配的tty,如果没有(如管道重定向),只会打印最终收据,因此您可以安全地将其包含在任何代码中,并确保您的日志文件不会成千上万进度线;
您可以暂停它!我认为这是进度条前所未有的功能!能够在正在运行的进度条上下文中手动操作某些项目,并像以往任何时候都从未停止过的那样恢复进度条,真是令人难以置信。
它是可定制的,具有越来越多的不同条形和旋转器样式的杂货店,以及多家工厂,可轻松产生您的!
📌 1.6系列的新功能!
软包装支持-或实际上缺乏支持,如果它不再适合该行,它将不会拼命地滚动您的终端!
隐藏的光标支持-更美观,更专业的外观!
python日志记录支持-从日志记录中充分清除和丰富消息,而无需任何配置或修改!
ETA的指数平滑-最需要时更平滑!
适当的栏标题-左对齐,始终可见的标题,因此您知道该处理会带来什么结果!
延长了经过时间和ETA表示-尽可能最小的再现,因此您可以最大化动画!
新的bar.text()专用方法-现在您可以更改情境消息,而不必继续前进!
性能优化-更少的开销,您的处理甚至不会注意到它!
使用
您只需使用pip安装:pip install alive-progress
清醒一下
打开这样的上下文管理器:
from alive_progress import alive_bar
items = range(1000) # retrieve your set of items
with alive_bar(len(items)) as bar: # declare your expected total
for item in items: # iterate as usual
# process each item
bar() # call after consuming one item
然后它就可以开始工作了! 👏
通常,只需检索项目,进入alive_bar()上下文管理器,然后正常进行迭代/处理,bar()就每个项目调用一次即可。
款式
想知道它内置了什么样式?是showtime啊!;)