程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-05(2)

2023-06(2)

Python进度条之 tqdm

发布于2020-02-21 11:56     阅读(984)     评论(0)     点赞(24)     收藏(2)



tqdm是一个使用简单,且美观的进度条的包,下面看一下效果。
在这里插入图片描述
使用这个库,我分首先要导入库函数

tqdm的安装与导入

pip install tqdm
  • 1

1.2 导入

from tqdm import tqdm 
  • 1

后面的这个tqdm是一个类,前面的tqdm是一个package,当然这个包里面还有其他的方法和类了。

tqdm的一些简单的例子

from tqdm import tqdm 
pbar = tqdm(range(1000))
for char in pbar:
    time.sleep(0.01)
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
在这里插入图片描述
以上就是简单使用。

自拟定显示信息

from tqdm import tqdm 
pbar = tqdm(range(1000))
for char in pbar:
    time.sleep(0.01)
    pbar.set_description("进度".format(char))

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

运行结果图:图一
图二

高级应用

多进程进度条

在使用多进程处理任务的时候,通过tqdm可以实时查看每一个进程任务的处理情况

from time import sleep
from tqdm import trange, tqdm
from multiprocessing import Pool, freeze_support, RLock
 
L = list(range(9))
 
def progresser(n):
  interval = 0.001 / (n + 2)
  total = 5000
  text = "#{}, est. {:<04.2}s".format(n, interval * total)
  for i in trange(total, desc=text, position=n,ascii=True):
    sleep(interval)
 
if __name__ == '__main__':
  freeze_support() # for Windows support
  p = Pool(len(L),
       # again, for Windows support
       initializer=tqdm.set_lock, initargs=(RLock(),))
  p.map(progresser, L)
  print("\n" * (len(L) - 2))

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

在这里插入图片描述
高级使用来源:详细介绍Python进度条tqdm的使用

注意:

在使用tqdm显示进度条的时候,如果代码中存在print可能会导致输出多行进度条,此时可以将print语句改为tqdm.write,代码如下

for i in tqdm(range(10),ascii=True):
  tqdm.write("come on")
  time.sleep(0.1)
  • 1
  • 2
  • 3
发布了30 篇原创文章 · 获赞 37 · 访问量 5504


所属网站分类: 技术文章 > 博客

作者:雪儿

链接:https://www.pythonheidong.com/blog/article/231890/0fdad7959687969a2b16/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

24 0
收藏该文
已收藏

评论内容:(最多支持255个字符)