Я хочу использовать tqdm
, чтобы показать индикатор выполнения передачи файла. Однако я не могу применить обычный способ использования tqdm
, как в
t =tqdm(total=100)
for i in range(10):
t.update(10)
t.close()
. Причина в том, что у меня есть функция, которая получает обратный вызов прогресса, так что каждый раз, когда обратный вызов вызывается внутри функция, она получит два параметра, consumed_bytes
и total_bytes
. Это напоминает следующий код:
def progress_bar(consumed_bytes, total_bytes):
print(consumed_bytes, total_bytes)
file_transfer(..., progress_callback=progressbar)
Поэтому, если бы я использовал следующий способ представления индикатора выполнения (измененная версия первого блока кода, опубликованного выше):
def progress_bar (consumed_bytes, total_bytes):
t = tqdm(total=total_bytes)
t.update(consumed_byets)
t.close()
file_transfer(..., progress_callback=progressbar)
Консоль будет печатать несколько индикаторов выполнения, как показано ниже,
8%|▊ | 8192/107647 [00:00<00:00, 45509587.24B/s]
15%|█▌ | 16384/107647 [00:00<00:00, 105722271.90B/s]
23%|██▎ | 24576/107647 [00:00<00:00, 169259794.92B/s]
30%|███ | 32768/107647 [00:00<00:00, 194122815.64B/s]
38%|███▊ | 40960/107647 [00:00<00:00, 213149741.74B/s]
46%|████▌ | 49152/107647 [00:00<00:00, 372127130.34B/s]
53%|█████▎ | 57344/107647 [00:00<00:00, 445404015.88B/s]
61%|██████ | 65536/107647 [00:00<00:00, 336036561.06B/s]
68%|██████▊ | 73728/107647 [00:00<00:00, 555184282.43B/s]
76%|███████▌ | 81920/107647 [00:00<00:00, 500141752.08B/s]
84%|████████▎ | 90112/107647 [00:00<00:00, 692229161.26B/s]
91%|█████████▏| 98304/107647 [00:00<00:00, 744254260.68B/s]
99%|█████████▉| 106496/107647 [00:00<00:00, 924796270.77B/s]
100%|██████████| 107647/107647 [00:00<00:00, 785224769.89B/s]
, но я хочу, чтобы она отображала только один индикатор выполнения. Можно ли отобразить только один индикатор выполнения с помощью механизма кода, описанного выше?