进度条模块tqdm介绍

2020年10月5日 / 3次阅读 / Last Modified 2020年10月5日

因为看到别人的jupyter notebook能够显示很漂亮的进度条,所有查询了一番,原来有个tqdm模块,专门负责python代码的进度条显示。

tqdm derives from the Arabic word taqaddum (تقدّم) which can mean “progress,” and is an abbreviation for “I love you so much” in Spanish (te quiero demasiado).

tqdm来自阿拉伯语taqaddum,就是进度的意思;同时它还是西班牙语“我非常爱你”的缩写!

安装tqdm就跳过了,pip即可。

使用很简单,将你代码中iterable对象包在tqdm函数中即可,如下:

>>> from tqdm import tqdm, trange
>>> a = [x for x in range(10000)]
>>> for it in tqdm(a):
...     pass
...
100%|████████████████████████████████████████████████████████████████████████| 10000/10000 [00:00<00:00, 1026280.07it/s]

trange就是tqdm(range(N)的一个简单替换。

>>> for i in trange(10000):
...     pass
...
100%|████████████████████████████████████████████████████████████████████████| 10000/10000 [00:00<00:00, 1013680.06it/s]

ncols参数控制进度条的宽度:

>>> for i in trange(10000, ncols=100):
...   pass
...
100%|█████████████████████████████████████████████████████| 10000/10000 [00:00<00:00, 971983.69it/s]
>>> for i in trange(10000, ncols=10):
...  pass
...
100%|█| 10

ascii=True的效果:

>>> for i in trange(10000, ncols=100, ascii=True):
...     pass
...
100%|#####################################################| 10000/10000 [00:00<00:00, 989339.31it/s]

加上一个desc描述的效果:

>>> for i in trange(10000, desc="Progress:"):
...     pass
...
Progress:: 100%|██████████████████████████████████████████████████████████████| 10000/10000 [00:00<00:00, 995042.70it/s]

jupyter notebook中的进图条,都是tqdm在背后支持。

tqdm的overhead很小,每个loop只有60ns,tqdm.gui只有80ns。

tqdm还在在命令行中,通过pipeline被使用。

-- EOF --

本文链接:https://www.pynote.net/archives/2530

相关文章

    留言区

    电子邮件地址不会被公开。 必填项已用*标注


    前一篇:
    后一篇:

    More


    ©Copyright 麦新杰 Since 2019 Python笔记

    go to top