Python: индикатор прогресса Печать
Добавил(а) microsin   

В этой статье рассмотрено несколько вариантов реализации индикатора прогресса какого-нибудь процесса (загрузка файла, прохождение теста и т. п.). Такой индикатор будет показывать, что программа не зависла и что-то делает, что добавит обратную связь для пользователя.

Индикатор прогресса можно сделать разными способами:

1. С помощью вывода точек.
2. С помощью вращающейся палочки (спиннер).
3. С помощью индикатора процентов.
4. Прогресс-бар на основе модуля tqdm.

[Простой индикатор с выводом точек]

def test_progress():
    print('.', end='', flush=True)

[Вращающаяся палочка (spinner)]

from itertools import cycle
spinner = cycle(['|', '/', '-', '\\'])

def test_progress(): print(f'\r{next(spinner)}', end='', flush=True)

[Индикатор процентов]

def test_progress():
    progress = (value / 100) * 100  # если предположить, что максимум value == 100
    print(f'\rProgress: {progress:.0f}%', end='', flush=True)

Общие замечания:

- Используйте \r для возврата позиции печати в начало строки.
- Используйте end='' в аргументах print, чтобы не делать перевод на печати новую строку.
- Используйте flush=True в аргументах print для обеспечения немедленного отображения прогресса.
- Для индикатора в виде спиннера используйте itertools.cycle.

[Прогресс-бар на основе модуля tqdm]

Это полноценный прогресс-бар, обладающий широкими возможностями. Базовые примеры использования см. в [1].

tqdm progress bar fig07

[Ссылки]

1. Python: индикатор прогресса в терминале с помощью tqdm.
2. tqdm / tqdm.