В этой статье рассмотрено несколько вариантов реализации индикатора прогресса какого-нибудь процесса (загрузка файла, прохождение теста и т. п.). Такой индикатор будет показывать, что программа не зависла и что-то делает, что добавит обратную связь для пользователя.
Индикатор прогресса можно сделать разными способами:
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].

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