我正在尝试找到一种方法来获取 pyqt 应用程序中进度条的结果/演变以及其他打印,例如在 QPlainTextEdit 小部件中。
我面临的问题是进度条可以使用一些更高级的回车,甚至更高级的光标定位,这些大多不被treams 支持。我试过io.StringIO
了,但\r
保持字面意思。
import io
from tqdm import tqdm
s = io.StringIO()
for i in tqdm(range(3), file=s):
sleep(.1)
输出:
s.getvalue()
Out[24]: '\n\r 0%| | 0/3 [00:00<?, ?it/s]\x1b[A\n\r 33%|###3 | 1/3 [00:00<00:00, 9.99it/s]\x1b[A\n\r 67%|######6 | 2/3 [00:00<00:00, 9.98it/s]\x1b[A\n\r100%|##########| 3/3 [00:00<00:00, 9.98it/s]\x1b[A\n\x1b[A'
翻译成:
print(s.getvalue())
0%| | 0/3 [00:00<?, ?it/s]
33%|###3 | 1/3 [00:00<00:00, 9.99it/s]
67%|######6 | 2/3 [00:00<00:00, 9.98it/s]
100%|##########| 3/3 [00:00<00:00, 9.98it/s]
需要明确的是,在我的输出中,我不希望每次 tqdm 更新一行,而只希望当前状态,因为它将打印在命令行上。
知道怎么做吗?谢谢!