我认为你最好的选择(因为 tqdm 有点接管输出)是使用
tqdm.write
所以如果你有一个进度条,你可以使用它来尝试打印,如下所示:
In [19]: from tqdm import tqdm
...: import time
...:
...: for i in tqdm(xrange(50)):
...: if i & 0x1 == 0:
...: tqdm.write(str(i))
...: time.sleep(0.5)
...:
0
2
4
6
8
10
12
14%|███████████▌ | 7/50 [01:50<11:16, 15.73s/it]--------------------------------------------------------------------------- | 11/50 [00:03<00:10, 3.62it/s]
最终应该打印并将栏分开放在底部。
如果您想明确刷新栏,您可以尝试使用tqdm.refresh
:
In [16]: gen = tqdm(xrange(50))
0%| | 0/50 [00:00<?, ?it/s]
In [17]: for i in gen:
...: if i & 0x1 == 0:
...: print str(i)
...: gen.refresh()
...: time.sleep(0.5)
...:
...:
...:
...:
0
2%|█▋ | 1/50 [00:01<01:17, 1.59s/it]2
6%|████▉ | 3/50 [00:02<00:55, 1.19s/it]4
10%|████████▎ | 5/50 [00:02<00:40, 1.10it/s]6
14%|███████████▌ | 7/50 [00:03<00:30, 1.41it/s]8
14%|███████████▌ | 7/50 [00:03<
但是正如您在不使用 tqdm.write 的情况下所看到的那样,您最终仍然会在打印的栏旁边出现字符。