tqdm не обновляется в той же строке

У меня проблемы с выяснением, как правильно вкладывать tqdm в цикл. Я пытаюсь получить прогресс загрузки aria2 через интерфейс xmlrpc. tqdm может прочитать ход выполнения, однако с каждым обновлением он выводит его на новую строку, поэтому спамит терминал. Вот код:

s = xmlrpc.client.ServerProxy("http://localhost:6800/rpc")

r = s.aria2.addUri(["http://ipv4.download.thinkbroadband.com/100MB.zip"],
                   {"dir": "/Downloads/ariatest"})

while True:
    globalstat = s.aria2.getGlobalStat()
    activeglobal = int(globalstat['numActive'])
    activeconnections = s.aria2.tellActive()

    if activeglobal > 0:
        totalLength = int(activeconnections[0]['totalLength'])
        completedLength = int(activeconnections[0]['completedLength'])
        with tqdm(total=totalLength, unit='B', unit_scale=True, unit_divisor=1024, leave=True) as pbar:
            pbar.update(completedLength)
            time.sleep(0.1)
    else:
        print('all done')
        break

и что это дает:

 26%|██▌       | 6.38M/25.0M [00:00<00:00, 890GB/s]
 26%|██▌       | 6.42M/25.0M [00:00<00:00, 843GB/s]
 26%|██▌       | 6.46M/25.0M [00:00<00:00, 874GB/s]
 26%|██▌       | 6.48M/25.0M [00:00<00:00, 877GB/s]
 26%|██▌       | 6.51M/25.0M [00:00<00:00, 597GB/s]
 26%|██▌       | 6.54M/25.0M [00:00<00:00, 654GB/s]
 26%|██▋       | 6.58M/25.0M [00:00<00:00, 839GB/s]
 26%|██▋       | 6.62M/25.0M [00:00<00:00, 963GB/s]
 27%|██▋       | 6.67M/25.0M [00:00<00:00, 931GB/s]

На данный момент я просто использую первую загрузку aria2, следовательно, activeconnections[0], но в конечном итоге цель состоит в том, чтобы вызывать индикатор выполнения для каждой загрузки, которая есть в списке ответов xmlrpc.

Спасибо.

0 ответов

Другие вопросы по тегам