我使用来自tqdm.notebook的tqdm.notebook来显示通过文件行进行迭代的进度条。我提供total参数来给出将要执行的迭代次数(因为我预先知道),这样就可以准确地显示进度。
我使用break在所需的最大迭代次数(要读取的文件行)处停止。
尽管执行的迭代次数等于tqdm中提供给tqdm的值,进度条显示已经执行的最大迭代次数(例如,示例中的11/11;参见图像),但该条以红色(而不是绿色)显示,表示过早终止/错误。
我已经尝试将tqdm对象分配给一个变量,并在中断之前按照this related question显式关闭迭代器。
如何使进度条正确显示?
from tqdm.notebook import tqdm
LETTERS = list('ABCDEFGHIJKL')
for idx, letter in enumerate(tqdm(LETTERS, total=len(LETTERS)-1)):
print(letter)
if idx >= len(LETTERS) - 1:
break

版本信息(如果有用的话)
IPython : 8.1.1 IPython:6.9.2ipyWidget: 7.7.0 jupyter_client : 7.1.2 jupyter_core : 4.9.2 jupyter_server : not jupyterlab : nbclient :0.5.13nbversion:6.4.4nb格式: 5.2.0笔记本:6.4.10qt控制台:5。2.2小卖部: 5.1.1
使用Python3.8.10运行。
发布于 2022-08-19 07:46:57
因为break是在最后一次迭代中,所以tqdm假设循环没有停止,即使循环是从语义方面完成的。
如果您想在最后有一个绿色进度条,请按照下面的方式构造您的代码
from tqdm.notebook import tqdm
LETTERS = list('ABCDEFGHIJKL')
for idx, letter in enumerate(tqdm(LETTERS, total=len(LETTERS))):
if idx == len(LETTERS):
break
print(letter)https://stackoverflow.com/questions/71517385
复制相似问题