Python прогресс выполнения кода

Работа с Progress Bar в Python

В процессе работы над различными проектами на Python иногда возникает необходимость отслеживания прогресса выполнения тяжеловесных и длительных операций.

В процессе работы над различными проектами на Python иногда возникает необходимость отслеживания прогресса выполнения тяжеловесных и длительных операций. Это может быть полезно, например, при загрузке больших файлов или выполнении сложных вычислений. В таких случаях удобно использовать индикаторы прогресса, или так называемые «progress bar».

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

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

def long_function(): for i in range(100): time.sleep(0.1) # Эмулируем долгую операцию return True

Библиотека tqdm

Для решения этой задачи в Python есть удобная библиотека tqdm , которая позволяет легко и быстро создавать индикаторы прогресса. Основная идея заключается в том, что tqdm оборачивает итерабельный объект и автоматически обновляет индикатор прогресса в процессе итерации.

Воспользуемся этой библиотекой в нашем примере.

from tqdm import tqdm import time def long_function(): for i in tqdm(range(100)): time.sleep(0.1) # Эмулируем долгую операцию return True

Теперь при вызове функции long_function() на экране будет отображаться строка, показывающая ход выполнения операции.

Многопоточность

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

Читайте также:  How to install pip python on windows

Итог

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

Источник

Освоение индикаторов выполнения Python с помощью tqdm: подробное руководство

Иногда важно знать, выполняется ли процесс, например установка, или нет. Хотя мы можем представить прогресс с помощью чисел, его легче понять с помощью визуального индикатора выполнения. В этом руководстве мы узнаем, как создавать индикаторы выполнения в Python с помощью библиотеки tqdm, настраивать их и просматривать в нашей командной строке и в наших записных книжках Python. К концу у вас будут знания для визуального отслеживания прогресса в ваших программах на Python. Давайте погрузимся!

Библиотека tqdm в Python — это простой и интерактивный способ отображения индикаторов выполнения в ваших программах. С помощью всего нескольких строк кода вы можете добавить визуальное отслеживание циклов, настроить длину и описание индикатора выполнения и даже отобразить цветные индикаторы выполнения в Jupyter Notebooks.

Понимание библиотеки Python tqdm

«tqdm» означает «taqaddum», что в переводе с арабского означает «прогресс». Библиотека tqdm — это библиотека Python, которая позволяет очень просто создавать индикаторы выполнения. Он предоставляет метод добавления индикаторов выполнения к вашим циклам и перебора элементов при отображении прогресса в режиме реального времени. С помощью tqdm вы можете добавить индикатор выполнения в свои циклы всего несколькими строками кода.

Установка и использование tqdm: основы

Мы начнем с установки модуля tqdm с помощью pip

Синтаксис использования функции tqdm:

tqdm(iterable, desc = "Any text")
  • iterable : любой итерируемый объект, над которым должен отображаться индикатор выполнения. Мы возьмем Python range(x) в цикле for здесь.
  • desc : Параметр desc в tqdm позволяет указать пользовательскую строку префикса для индикатора выполнения, которая может дать контекст для хода выполнения (например, «Загрузка», «Обработка» и т. д.).

Пожалуйста, имейте в виду, что эти параметры предназначены только для начала, фактическое количество параметров, доступных в tqdm() огромный.

После установки мы напишем простой код для отображения индикатора выполнения в нашей командной строке:

from time import sleep from tqdm import tqdm for i in tqdm(range(10)): sleep(1)

Начиная с импорта tqdm и библиотеки времени, мы написали наш образец для цикла. Здесь мы взяли range(10) как наша итерация для tqdm(), которая дает указание нашему циклу for повторяться 10 раз. Sleep(1) заставляет программу python ждать 1 секунду на каждой итерации, это позволяет нам легко наблюдать за работой индикатора выполнения. Узнать больше о time.sleep() здесь.

Скриншот 2023 05 29 082340

Бар выглядит длиннее, чем нужно? Давайте настроим его и сделаем его меньше!

Настройка индикатора выполнения: как настроить длину

Модуль tqdm предоставляет параметр bar_format который можно использовать для изменения длины индикатора выполнения с точки зрения количества символов.

from time import sleep from tqdm import tqdm for i in tqdm(range(10), bar_format="", desc ="Installing Happiness"): sleep(1)

Давайте разберем bar_format строка, используемая в примере кода:

  • : Представляет крайнюю левую часть индикатора выполнения.
  • : Указывает фактическую полосу прогресса, здесь у нас есть ширина 20 символов.
  • : Представляет крайнюю правую часть индикатора выполнения.

Скриншот 2023 05 31 004432

Обратите внимание, что длина индикатора выполнения теперь составляет всего 20 символов, что значительно меньше. Вы можете изменить длину стержня на любую меру в соответствии с вашими требованиями.

Предоставление контекста вашему прогрессу: использование параметра desc

Как правило, при установке пакетов Python мы видим такие ключевые слова, как загрузка/установка в нашей командной строке. Мы можем добавить текст перед индикаторами выполнения, подобными этим, с помощью desc параметр tqdm() . Например, в наш код мы добавим параметр desc =»Installing Happiness» в tqdm() функция, теперь наш код становится таким:

from time import sleep from tqdm import tqdm for i in tqdm(range(10), bar_format="", desc ="Installing Happiness"): sleep(1)

Это даст нам желаемый результат с текстом «Installing Happiness» перед индикатором выполнения:

Скриншот 2023 05 31 004721

Раскрасьте свой ноутбук Jupyter цветными индикаторами выполнения

Похожий на tqdm() , tqdm_notebook() позволяет перебирать итерируемый объект, отображая индикатор выполнения. Однако tqdm.notebook.tqdm предназначен для отображения индикаторов выполнения с более богатым интерфейсом в Jupyter Notebooks по сравнению с tqdm, который лучше подходит для интерфейсов командной строки. Он обеспечивает цветное визуальное представление хода выполнения, включая количество итераций, расчетное оставшееся время и различные другие настраиваемые параметры.

from tqdm.notebook import tqdm as tqdm_notebook import time for i in tqdm_notebook(range(10), desc = "Tqdm in Jupyter Notebook"): time.sleep(1)

В приведенном выше примере мы использовали tqdm_notebook() который имеет почти такое же использование, как функция tqdm() . Цвет индикатора выполнения меняется следующим образом:

  • Синий: пока процесс еще выполняется
  • Зеленый: процесс завершен
  • Красный: процесс остановлен до завершения

Скриншот 2023 05 31 010001

Скриншот 2023 05 31 010017

Узнать больше о tqdm здесь

Заключение

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

Читать далее…

Источник

Оцените статью