alive-progress

alive-progress是一个使用Python编写的动态进度条显示工具,它具有以下优点:

  1. 很酷的实时微调器,它清楚地表明您的漫长过程没有挂起,并且ssh连接正常
  2. 通过视觉反馈清楚地展示当前程序的进度
  3. 采用智能指数平滑算法,以最友好的方式显示剩余的处理时间
  4. 它允许在动画栏的中间毫不费力地打印语句和消息,自动清理屏幕
  5. 程序执行完成后,输出一张统计表,其中包含程序运行的统计信息,包括时间和吞吐量
  6. 您可以暂停它!这是进度条前所未有的功能!能够在正在运行的进度条上下文中手动操作某些项目,并让它恢复到从未停止过的状态

效果展示:

简单使用

安装alive-progress

pip3 install alive-progress

使用示例

from alive_progress import alive_bar
import time
with alive_bar(100) as bar: 
    for i in range(100):
        time.sleep(0.1)
        bar() 

进度条样式设置

1. title

进度条标题,表示正在执行的处理;

from alive_progress import alive_bar
import time
with alive_bar(100,title="进度条标题") as bar: 
    for i in range(100):
        time.sleep(0.1)
        bar()

2. length

渲染进度条长度的字符数

from alive_progress import alive_bar
import time
with alive_bar(100,title="进度条标题",length=30) as bar: 
    for i in range(100):
        time.sleep(0.1)
        bar()

下图展示了30个字符和50个字符的进度条长度

3. spinner

要用于所有演绎的微调器,进度条末尾的动画效果

可选参数:

参数样式
classic----------------------------------------
stars**********************************
arrow←↖↑↗→↘↓↙←↖↑↗→↘↓
vertical▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇
waves▇▇▅▃▁▃▅▇▇▅▃▁▃▅▇▇▅▃▁▃▅▇
waves2▇▄▃█▃▄▇▂▅▆▁▆▅▂▇▄▃█▃▄▇
waves3▇▂▇▂▇▂▇▂▇▂▇▂▇▂▇▂▇▂▇▂▇▂
horizontal▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊
dots⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁
dots_reverse⣾⣾⣾⣾⣾⣾⣾⣾⣾⣾⣾⣾⣾⣾⣾⣾⣾⣾
dots_waves⠁⠈⠐⠠⢀⡀⠄⠂⠁⠈⠐⠠⢀⡀⠄⠂⠁⠈
dots_waves2⠁⠐⢀⠄⠁⠐⢀⠄⠁⠐⢀⠄⠁⠐⢀⠄⠁⠐
ball_scrolling∙∙∙∙∙∙∙∙∙∙∙∙∙∙●∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
balls_scrolling●●●●●●●●●●●●●∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
bar_recur========================
······

更多请使用show_spinners()方法查看,这里就不一一列举了

4. bar

进度条样式,用方法show_bars()查看可选参数,使用方法参照上例,这里不再赘述

更多高级使用方法请前往 alive-progress项目地址

实用例子

因为我用python来下载m3u8视频,想要一个展示视频下载进度的东西,所以就在github上找到了alive-progress这个项目
下面是使用这个项目来展示视频下载进度的效果:

[video src="https://file.ztongyang.cn/cloud%2FRec0014.mp4"]