Тесты Пообщаться с GPT Протестировать код
Программирование Аналитика Дизайн Маркетинг Управление проектами
10 Ноя 2023
2 мин
1012

Создание текстового прогресс-бара в консоли

Пройдите тест, узнайте какой профессии подходите

Часто возникает ситуация, когда при разработке консольных приложений, таких как приложения для загрузки или выгрузки файлов, требуется визуализировать

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

Предположим, что есть задача загрузки большого файла с FTP-сервера. Было бы удобно иметь визуальное представление о том, сколько уже загружено и сколько осталось загрузить.

Однако, при этом хотелось бы избежать стирания всего текста, который был напечатан в консоли в предыдущих строках. То есть, не хотелось бы «очищать» всю консоль при печати обновленного прогресса.

Как это можно сделать?

В Python для создания текстового прогресс-бара можно использовать модуль tqdm. Этот модуль предоставляет простой и удобный способ отображения прогресс-бара в консоли.

Пример использования:

from tqdm import tqdm
import time

for i in tqdm(range(100)):
    time.sleep(0.01)  # имитация задержки

В этом примере tqdm(range(100)) создает итератор, который выводит прогресс-бар в консоли при каждой итерации цикла. Функция time.sleep(0.01) используется для имитации задержки, чтобы можно было увидеть прогресс-бар в действии.

Как это работает?

Модуль tqdm использует специальные символы для перемещения курсора влево, так что при каждой итерации он перезаписывает текущую строку, создавая эффект движения прогресс-бара. При этом все предыдущие строки остаются нетронутыми.

Таким образом, модуль tqdm предоставляет простой и удобный способ добавления текстового прогресс-бара в консольное приложение на Python, не требуя при этом «очистки» всей консоли.

Добавить комментарий