Python-tqdm

tqdm在阿拉伯语中表示“进步”,是西班牙语(te quiero demasiado)中“我爱你如此深”的缩写。

立即让你的循环显示一个智能进度表-只要用tqdm(iterable)包装任何iterable,你就完成了!

from tqdm import tqdm
for i in tqdm(range(10000)):
    ...

开销很低——每次迭代约60ns(使用Tqdm_GUI时为80ns),并根据性能回归进行单元测试。相比之下,成熟的进度条有800ns/iter开销。
除了它的低开销之外,tqdm还使用智能算法来预测剩余时间,并跳过不必要的迭代显示,这在大多数情况下可以忽略开销。
tqdm可以在任何平台(Linux、Windows、Mac、FreeBSD、NetBSD、Solaris/SunOS)、任何控制台或图形用户界面上工作,并且与ipython/jupyter笔记本电脑也很友好。

Installation

pip install tqdm
pip install -e git+https://github.com/tqdm/tqdm.git@master#egg=tqdm
conda install -c conda-forge tqdm

Usage

from tqdm import tqdm
import time

text = ""
for char in tqdm(["a", "b", "c", "d"]):
    time.sleep(0.25)
    text = text + char

Python-tqdm_第1张图片

 

Trange(i) 是tqdm(Range(i))的一个特殊优化实例:

for i in trange(100):
    time.sleep(0.01)

循环外部的实例化允许手动控制tqdm():

pbar = tqdm(["a", "b", "c", "d"])
for char in pbar:
    time.sleep(0.25)
    #设置进程的名称
    pbar.set_description("Processing %s" % char)

Python-tqdm_第2张图片

 Manual

通过使用with语句对tqdm()更新进行手动控制:

# 一共100个,每次更新10,一共更新10次
with tqdm(total=100) as pbar:
    for i in range(10):
        time.sleep(0.1)
        pbar.update(10)

Python-tqdm_第3张图片

 如果提供了可选变量total(或带有len()的iterable),则会显示预测性统计信息。
with也是可选的(您只需将tqdm()赋给一个变量,但在本例中,不要忘记在末尾使用del或close():

pbar = tqdm(total=100)
for i in range(10):
    time.sleep(0.1)
    pbar.update(10)
pbar.close()

Python-tqdm_第4张图片

 Module

也许tqdm最美妙的用途是在脚本或命令行中。只需在管道之间插入tqdm(或python-m tqdm),就可以在将进度打印到stderr时将所有stdin传递到stdout。
下面的示例演示了计算当前目录中所有python文件中的行数,其中包括计时信息。

$ time find . -name '*.py' -type f -exec cat \{} \; | wc -l
857365

real    0m3.458s
user    0m0.274s
sys     0m3.325s

$ time find . -name '*.py' -type f -exec cat \{} \; | tqdm | wc -l
857366it [00:03, 246471.31it/s]
857365

real    0m3.585s
user    0m0.862s
sys     0m3.358s

翻译原址:https://pypi.org/project/tqdm/

你可能感兴趣的:(python)