我想重置tqdm进度条。
这是我的代码:
s = tqdm(range(100))
for x in s:
pass
# Reset it here
s.reset(0)
for x in s:
passTqdm PB只适用于第一个循环。我试着用.reset(0)函数重置它,但它不起作用。
上述代码的输出为:
100%|██████████| 100/100 [00:00<?, ?it/s]我注意到他们在这里使用:Restting progress bar counter这个代码
pbar.n = 0
pbar.refresh()但它并不能很好地工作。
发布于 2019-11-01 18:43:56
当包装一个迭代器时,当迭代器耗尽时,tqdm将close()栏。这意味着重用(refresh()等)将不起作用。您可以手动解决您的问题:
from tqdm import tqdm
s = range(100)
t = tqdm(total=len(s))
for x in s:
t.update()
t.refresh() # force print final state
t.reset() # reuse bar
for x in s:
t.update()
t.close() # close the bar permanently发布于 2019-07-09 21:16:23
尝试在旧的进度条上创建一个新的进度条。垃圾收集器将在以后处理旧的垃圾收集器,一旦代码中没有任何东西再引用它,就会将它从内存中取出。
s = tqdm(range(100))
for x in s:
pass
# reset it here
s = tqdm(range(100))
for x in s:
passhttps://stackoverflow.com/questions/56953040
复制相似问题