给Python函数添加进度条

5

非常感谢您这位初学者的帮助 :) 我尝试了下面的内容,但不确定如何包含def Job()

import time
from progressbar import ProgressBar


pbar = ProgressBar()
def job():
        Script ....
        Script ...
        Script ...
        Script ...

1
请点击这里这里查看相关的编程内容。 - ZF007
2
可能是Python进度条的重复问题。 - ZF007
我发布了一种新型进度条,你可以打印它,查看吞吐量和预计时间,甚至可以暂停它,除此之外还有非常酷的动画效果!请查看:https://github.com/rsalmei/alive-progress alive-progress - rsalmei
3个回答

7
您可以像这样使用progressbar
import time
from progressbar import ProgressBar

pbar = ProgressBar()

def job():
    for i in pbar(xrange(5)):
        print(i)

job()

输出结果如下所示:
0 0% |                                                                         |
120% |##############                                                           |
240% |#############################                                            |
360% |###########################################                              |
480% |##########################################################               |
100% |#########################################################################

我更喜欢 tqdm,它的工作方式相同。

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

图片

这里输入图片描述


3
你可以这样使用bar对象:
import time
import progressbar


def job():
    bar = progressbar.ProgressBar()
    for i in bar(range(100)):
        ... # Code that you want to run
        #time.sleep(0.02)

job()

如果你想要执行的代码具有快速的执行时间,你可以在里面放置一个time.sleep(),以便在开始时不将进度条设置为100%。


2

这个答案实际上是最好的(目前)回答了问题的上下文,即函数中任务的进度条,而不是在可迭代对象上。如果它可以普遍地包装任何函数,那就更好了。 - Azhar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接