鱼C论坛

 找回密码
 立即注册
查看: 2242|回复: 5

[技术交流] Python 小技巧 042:显示进度条

[复制链接]
发表于 2019-12-29 20:48:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
使用 Python 显示进度条


用 Python 显示进度条可以使用 tqdm 或 progressbar 第三方库。

1. tqdm

tqdm 显示的进度条非常漂亮。让我们看一个例子:

  1. from tqdm import tqdm               # 导入 tqdm.tqdm 类
  2. from time import sleep

  3. for i in tqdm(range(10000)):        # 遍历 tqdm(range(10000))(range(10000) 可以换成其他可迭代对象)
  4.     sleep(0.01)                     # 停止 10 毫秒
复制代码


执行效果:

1.gif

还可以为进度条增加描述信息:

  1. from tqdm import tqdm
  2. from time import sleep

  3. bar = tqdm(range(10000))     # 创建一个进度条对象

  4. for i in bar:
  5.     bar.set_description(f"现在的数字是:{i}")          # 为进度条添加描述信息
  6.     sleep(0.01)
复制代码


执行效果:

1.gif

2. progressbar

progressbar 显示的进度条虽然不如 tqdm 漂亮,但是它有许多功能。

一个简单的例子:

  1. import time
  2. from progressbar import *

  3. progress = ProgressBar()
  4. for i in progress(range(1000)):
  5.     time.sleep(0.01)
复制代码


执行效果:

1.gif

progressbar 还可以这样用:

  1. import time
  2. from progressbar import *

  3. progress = ProgressBar().start()
  4. for i in range(1000):
  5.     progress.update(i // 10)    # 更新进度条
  6.     time.sleep(0.01)
复制代码


执行效果和上面的一样。

progressbar 还有一个高级的用法:

  1. import time
  2. from progressbar import *

  3. total = 1000

  4. # 'Progress' 是进度条前的文字
  5. # Percentage() 是进度条百分比
  6. # Bar('#') 设置进度条形状为 #
  7. # ETA() 显示预计剩余时间
  8. # Timer() 显示已用时间
  9. widgets = ['Progress: ', Percentage(), ' ', Bar('#'), ' ', Timer(), ' ', ETA(), ' ', FileTransferSpeed()]
  10. pbar = ProgressBar(widgets=widgets, maxval=10 * total).start()
  11. for i in range(total):
  12.     pbar.update(10 * i + 1)
  13.     time.sleep(0.01)
  14. pbar.finish()
复制代码


执行效果:

1.gif

评分

参与人数 2荣誉 +6 鱼币 +6 贡献 +3 收起 理由
lijiachen + 1 + 1 无条件支持楼主!
Yvonne! + 5 + 5 + 3 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-31 18:50:47 | 显示全部楼层
哇哦,谢谢楼主的分享~~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-5 17:12:55 From FishC Mobile | 显示全部楼层
@zltzlt 如果不停止10毫秒回怎么样?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-5 17:13:41 | 显示全部楼层
_2_ 发表于 2020-1-5 17:12
@zltzlt 如果不停止10毫秒回怎么样?

进度条会瞬间跑完
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-5 17:14:35 From FishC Mobile | 显示全部楼层
zltzlt 发表于 2020-1-5 17:13
进度条会瞬间跑完

呵呵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-5 17:15:31 From FishC Mobile | 显示全部楼层
zltzlt 发表于 2020-1-5 17:13
进度条会瞬间跑完

实际并不会像这样停止,而是根据百分比来确定进度
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-4 09:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表