【发布时间】:2017-12-29 01:39:53
【问题描述】:
我有以下 Python 3 代码:
from tqdm import tqdm
print("Before")
for _ in tqdm(range(10)): pass
print("After")
我希望得到以下输出到终端:
Before
100%|##########| 10/10 [00:00<?, ?it/s]
After
但是,我得到的是:
100%|##########| 10/10 [00:00<?, ?it/s]
Before
After
即相对于我的代码,打印输出的顺序错误。我还尝试在两次调用print 之前和之后调用sys.flush,只是得到以下输出:
Before
100%|##########| 10/10 [00:00<?, ?it/s]After
另外,将print 更改为tqdm.write 对行为没有任何影响。
为什么它会以这种意想不到的方式运行?
编辑: 这个问题是关于在 tqdm 循环之前或之后使用打印功能的具体情况。还有其他类似的问题是关于在 in tqdm 循环中打印消息,这里不是这种情况。
【问题讨论】:
-
@zwer 我不会说这一定是重复的,因为该问题是关于仍在 tqdm 循环中的打印。但是这个问题的一个答案为我提供了一个解决方案,所以谢谢! :)
-
@zwer 我相信这个问题被错误地标记为另一个问题的完全重复 - 正如我在对问题的编辑中解释的那样,它们是不同的。如何取消将其标记为完全重复?