tqdm.write()中的回车

时间:2018-03-12 09:18:25

标签: python progress-bar carriage-return tqdm

我在使用tqdm.write()

的回车时遇到问题

此代码完美运行,它可以制作旋转条的动画

step = 0
for x in range (0,50):
    animation = {0: '|',
                 1: '/',
                 2: '-',
                 3: '\\'
                 }[step]
    tqdm.write(animation, end='\r')
    step = (step+1) % 4
    time.sleep(0.1)

但是如果我在之前创建进度条:

bar = tqdm(total=100)  # Here
step = 0
for x in range (0,50):
    animation = {0: '|',
                 1: '/',
                 2: '-',
                 3: '\\'
                 }[step]
    tqdm.write(animation, end='\r')
    step = (step+1) % 4
    time.sleep(0.1)

我只显示了进度条。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这是官方tqdm github中的一个问题。

https://github.com/tqdm/tqdm/issues/520

作者建议使用前缀而不是结束

进行更正
from time import sleep
from tqdm import tqdm, trange
from tqdm._utils import _term_move_up


prefix = _term_move_up() + '\r'
print('')
for x in trange(50):
    tqdm.write(prefix + "|/-\\"[x % 4])
    sleep(0.1)