问题定位:
python的tqdm模块用于进度条打印等功能,在大部分IDE、大部分情况下是可以正常打印的,但当你手动停止了tqdm管理的代码块后,就会出现以下场景:
如上所示,此时的tqdm模块无法单行打印进度条,有的时候还会每两个进度条之间空一行打印,十分混乱
问题解析:
为何无法再一行内完成进度条打印呢?因为若你之前的tqdm管理的代码块没有被正确close的话(比如使用了Ctrl+C键盘终止),tqdm就无法被正常关闭,后面再次使用tqdm模块打印进度条,就会出现这种嵌套打印的情况。。。
问题解决:
最新解决方法:
在tqdm包更新后,理应不再出现这类bug。所以有这类问题,或更新tqdm到最新版本,或使用jupyter notebook版本的tqdm:(感谢评论区的朋友)
from tqdm import tqdm_notebook as tqdm
使用如下try-catch代码捕获KeyboardInterrupt异常:
try: with tqdm(...) as t: for i in t: ... except KeyboardInterrupt: t.close() raise t.close()
展示如下: