首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重置tqdm进度条

重置tqdm进度条
EN

Stack Overflow用户
提问于 2019-07-09 20:51:02
回答 2查看 5.5K关注 0票数 3

我想重置tqdm进度条。

这是我的代码:

代码语言:javascript
复制
s = tqdm(range(100))
for x in s:
    pass

# Reset it here
s.reset(0)

for x in s:
    pass

Tqdm PB只适用于第一个循环。我试着用.reset(0)函数重置它,但它不起作用。

上述代码的输出为:

代码语言:javascript
复制
100%|██████████| 100/100 [00:00<?, ?it/s]

我注意到他们在这里使用:Restting progress bar counter这个代码

代码语言:javascript
复制
pbar.n = 0
pbar.refresh()

但它并不能很好地工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-01 18:43:56

当包装一个迭代器时,当迭代器耗尽时,tqdmclose()栏。这意味着重用(refresh()等)将不起作用。您可以手动解决您的问题:

代码语言:javascript
复制
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
票数 7
EN

Stack Overflow用户

发布于 2019-07-09 21:16:23

尝试在旧的进度条上创建一个新的进度条。垃圾收集器将在以后处理旧的垃圾收集器,一旦代码中没有任何东西再引用它,就会将它从内存中取出。

代码语言:javascript
复制
s = tqdm(range(100))
for x in s:
    pass

# reset it here
s = tqdm(range(100))
for x in s:
    pass
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56953040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档