我正在使用tqdm在Jupyter笔记本上运行的脚本中打印进度。我正在通过tqdm.write()将所有消息打印到控制台。然而,这仍然给我一个倾斜的输出,如下所示:
也就是说,每当需要打印新的一行时,下一行就会打印一个新的进度条。当我通过终端运行脚本时,这不会发生。我怎么解决这个问题?
我正在使用tqdm在Jupyter笔记本上运行的脚本中打印进度。我正在通过tqdm.write()将所有消息打印到控制台。然而,这仍然给我一个倾斜的输出,如下所示:
也就是说,每当需要打印新的一行时,下一行就会打印一个新的进度条。当我通过终端运行脚本时,这不会发生。我怎么解决这个问题?
当前回答
使用tqdm_notebook
from tqdm import tqdm_notebook as tqdm
x=[1,2,3,4,5]
for i in tqdm(range(0,len(x))):
print(x[i])
其他回答
使用tqdm_notebook
from tqdm import tqdm_notebook as tqdm
x=[1,2,3,4,5]
for i in tqdm(range(0,len(x))):
print(x[i])
尝试使用tqdm.notebook.tqdm代替tqdm,如下所述。
这可以像更改您的导入一样简单:
从tqdm。笔记本导入TQDM
编辑:经过测试,似乎tqdm实际上工作在“文本模式”在Jupyter笔记本。这很难判断,因为您没有提供最少的示例,但看起来问题是由每次迭代中的print语句引起的。print语句在每次状态栏更新之间输出一个数字(~0.89),这使输出变得混乱。尝试删除打印语句。
大多数答案现在都过时了。最好正确地导入tqdm。
from tqdm import tqdm_notebook as tqdm
在我的情况下,我只需要更新ipywidgets,以摆脱使用常规从tqdm导入tqdm时的额外打印。
为了完成oscarbranson的回答:根据进度条的运行位置,可以自动选择控制台或笔记本版本的进度条:
from tqdm.autonotebook import tqdm
更多信息可以在这里找到