重置 tqdm 进度条

Gha*_*nem 3 python-3.x tqdm

我想重置 tqdm 进度条。

这是我的代码:

s = tqdm(range(100))
for x in s:
    pass

# Reset it here
s.reset(0)

for x in s:
    pass
Run Code Online (Sandbox Code Playgroud)

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

上面代码的输出是:

100%|??????????| 100/100 [00:00<?, ?it/s]
Run Code Online (Sandbox Code Playgroud)

我注意到他们在这里使用:Restting progress bar counter this code

pbar.n = 0
pbar.refresh()
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

cas*_*dcl 7

包装一个可迭代对象时,当可迭代对象用完时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
Run Code Online (Sandbox Code Playgroud)