Индикатор прогрессии в выводе в зависимости от хода расчета в Python - PullRequest
0 голосов
/ 18 мая 2018

Если мы предположим, что следующий код является огромным и сложным кодом и длится несколько минут или часов, и мы хотим сообщить пользователю, сколько процентов кода проходит, что мне делать?

num=1

for i in range(1,100000):
    num=num*i
print(num)

Я хочу проинформировать пользователей о прогрессии, аналогичной установке чего-либо.Я проверил здесь , но я не понимал, как написать строку прогресса в зависимости от моего прогресса кода.

В примерах, аналогичных упомянутой ссылке, они определяют время ожидания или время ожидания.это не приемлемоПотому что мы не знаем время вычисления Python в другом коде с разными функциями.

1 Ответ

0 голосов
/ 18 мая 2018

Если ваш индекс i соответствует вашему текущему прогрессу, пакет tqdm является хорошим вариантом.Простой пример:

from tqdm import tqdm
import time

for i in tqdm(range(1000)):
    time.sleep(0.01)  # sleep 0.01s

Вывод:

1%|          | 1010/100000 [00:10<16:46, 98.30it/s]

Редактировать: индикатор выполнения также работает, если прогресс не известен.

def loop_without_known_length():
    # same as above, but the length is not known outside of this function.
    for i in range(1000):
        yield i

for i in tqdm(loop_without_known_length()):
    time.sleep(0.01)

Вывод:

60it [00:00, 97.23it/s]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...