Программирование PC Python: индикатор прогресса в терминале с помощью tqdm Fri, April 18 2025  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


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

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

В качестве альтернативы можно также использовать модуль progressbar2 [1].

[Установка tqdm]

Откройте командную строку терминала и выполните команду:

$ pip install tqdm

Если у вас Python3, то введите:

$ pip3 install tqdm
Collecting tqdm Downloading tqdm-4.67.1-py3-none-any.whl.metadata (57 kB) ---------------------------------------- 57.7/57.7 kB 431.2 kB/s eta 0:00:00 Requirement already satisfied: colorama in c:\python310\lib\site-packages (from tqdm) (0.4.5) Downloading tqdm-4.67.1-py3-none-any.whl (78 kB) ---------------------------------------- 78.5/78.5 kB 2.2 MB/s eta 0:00:00 Installing collected packages: tqdm Successfully installed tqdm-4.67.1
[notice] A new release of pip is available: 23.3.1 -> 25.0.1 [notice] To update, run: python.exe -m pip install --upgrade pip

Эта команда установит библиотеку tqdm на ваш компьютер, после чего она готова к использованию.

[Использование tqdm]

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

Давайте рассмотрим следующий пример, который поможет лучше понять, как это работает:

from tqdm import tqdm

for i in tqdm(range(int(9e6))): pass

Результат работы кода:

tqdm progress bar fig01

Теперь, когда мы знаем, как применить tqdm, давайте рассмотрим его важные параметры, которые предоставляются для настройки полосы прогресса.

desc: этот параметр можно указать для описания полосы прогресса.

Синтаксис:

tqdm (self, iterable, desc="Любой текст, какой захотите")

Пример:

from tqdm import tqdm
from time import sleep

for i in tqdm(range(0, 100), desc="Привет!"): sleep(0.1)

tqdm progress bar fig02

total: этот параметр указывает общее ожидаемое количество итераций, если они еще не указаны или требуют изменения.

Синтаксис:

tqdm (self, iterable, total= 500)

Пример:

from tqdm import tqdm
from time import sleep

for i in tqdm(range(0, 100), total=500, desc="Привет!"): sleep(0.1)

tqdm progress bar fig03

disable: этот параметр можно использовать, если вы хотите полностью запретить полосу прогресса.

Синтаксис:

tqdm (self, iterable, disable=True)

Пример:

from tqdm import tqdm
from time import sleep

for i in tqdm(range(0, 100), disable=True, desc="Привет!"): sleep(0.1)

print("Итерация прошла успешно")

tqdm progress bar fig04

ncols: этот параметр используется для указания общей ширины выводимого сообщения. Если его не указывать, то длина сообщения остается динамической и зависит от размера окна терминала. С помощью параметра ncols ширину полосы прогресса можно сделать фиксированной.

Синтаксис:

tqdm (self, iterable, ncols=N)

Пример:

from tqdm import tqdm
from time import sleep

for i in tqdm(range(0, 100), ncols=50, desc="Привет!"): sleep(0.1)

tqdm progress bar fig05

mininterval: этой опцией вы можете просто задать минимальный интервал обновления отображения прогресса в секундах. По умолчанию интервал составляет 0.1 секунды.

Синтаксис:

tqdm (self, iterable, mininterval=3)

Пример:

from tqdm import tqdm
from time import sleep

for i in tqdm(range(0, 100), mininterval=3, desc="Привет!"): sleep(0.1)

ascii: вы можете использовать символы ASCII для заполнения полоски прогресса. 

Синтаксис:

tqdm (self, iterable, ascii=" 123456789$")

Пример:

from tqdm import tqdm
from time import sleep

for i in tqdm(range(0, 100), ascii=" 123456789$"): sleep(0.1)

tqdm progress bar fig06

unit: единицы итераций, по умолчанию "it". Этот текст можно поменять, например на " ticks".

Синтаксис:

tqdm (self, iterable, unit=" ticks")

Пример:

from tqdm import tqdm
from time import sleep

for i in tqdm(range(0, 100), unit=" ticks", desc="Привет!"): sleep(0.1)

tqdm progress bar fig07

initial

Начальное значение по умолчанию, от которого начинает работу полоса прогресса, равно 0. Если вы хотите это изменить, то можете использовать этот параметр, тогда полоса прогресса начнет отображаться относительно этого значения.

Синтаксис:

tqdm (self, iterable, initial=I)

Пример:

from tqdm import tqdm
from time import sleep

for i in tqdm(range(0, 100), initial=50): sleep(0.1)

[Привязка прогресса к переменной]

def progress_start():
    # добавление прогресс-бара к глобальным переменным:
    global progress_current, progress_bar
print('---[Test start]---') progress_current = 0 # Использование значения переменной progress_end # в качестве максимума прогресса: progress_bar = tqdm(total=progress_end, desc="Тестирование", unit="%")

def progress_iteration (): global progress_current, progress_bar
progress_current += 1 progress_bar.update(1) if progress_current == progress_end: progress_bar.close()

Мы рассмотрели только малую часть возможностей класса tqdm. Для получения подробной информации обратитесь к документации по модулю tqdm (см. врезку ниже).

Выжимка из результата help(tqdm):

    ...
    class tqdm(tqdm.utils.Comparable)
     |  tqdm(*_, **__)
     |
     |  Декорирует итеративный объект, возвратит итератор, который работает
     |  как оригинальный iterable, но при этом печатает динамически
     |  обновляемую полосу прогресса (progressbar) при каждом запросе.
     |
     |  Параметры
     |  ---------
     |  iterable: iterable, опциональный параметр
     |      Iterable для декорирования полосы прогресса.
     |      Оставьте этот параметр пустым для обновления вручную.
     |  desc: str, опциональный параметр
     |      Префикс для полосы прогресса.
     |  total: int или float, опциональный параметр
     |      Количество ожидаемых итераций. Если не указан, то по возможности
     |      используется len(iterable). Если float("inf") или значение
     |      "последнего шанса" (last resort), то отображается только
     |      базовая статистика прогресса (без ETA, без полосы прогресса).
     |      Если `gui` True, и этот параметр нуждается в последующем
     |      обновлении, то укажите начальное произвольно большое положительное
     |      число, например 9e9.
     |      Примечание: ETA означает Estimated Time of Arrival, оцениваемое
     |      время достижения цели.
     |  leave: bool, опциональный параметр
     |      Если [default: True], то сохранит всю трассировку полосы
     |      прогресса по завершению итерации.
     |      Если `None`, то leave только если `position` == `0`.
     |  file: `io.TextIOWrapper` или `io.StringIO`, опциональный параметр
     |      Указывает, куда выводить сообщения прогресса (default: sys.stderr).
     |      Использует методы `file.write(str)` и `file.flush()`. Для кодирования
     |      см. `write_bytes`.
     |  ncols: int, опциональный параметр
     |      Ширина всего выводимого сообщения. Если это указано, то динамически
     |      подстроит полосу прогресса, чтобы она уместилась в заданных границах.
     |      Если не указано, то будет сделана попытка использовать ширину
     |      вывода в текущем окружении (ширина окна терминала в символах).
     |      Запасной вариант - измеритель шириной 10, без ограничения для
     |      счетчика и статистики. Если 0, то не будет печататься никакой
     |      измеритель (выведется только статистика).
     |  mininterval: float, опциональный параметр
     |      Минимальный интервал обновления прогресса на экране в секундах
     |      [default: 0.1].
     |  maxinterval: float, опциональный параметр
     |      Максимальный интервал обновления прогресса на экране в секундах
     |      [default: 10]. Автоматически подстраивает `miniters` для соответствующего
     |      `mininterval` после продолжительного лага обновления экрана. Работает
     |      только если разрешен `dynamic_miniters` или monitor thread.
     |  miniters: int или float, опциональный параметр
     |      Минимальный интервал обновления прогресса на экране в итерациях.
     |      Если 0 и `dynamic_miniters`, то будет автоматически подстраиваться
     |      к эквивалентному `mininterval` (более эффективное использование CPU,
     |      полезно для жестких циклов). Если > 0, то будет пропускать отображение
     |      указанное количество итераций. Подстройте этот параметр и `mininterval`,
     |      чтобы достичь эффективных циклов. Если ваш прогресс хаотический,
     |      с быстрыми и медленными итерациями (сеть, пропуск обрабатываемых
     |      элементов и т. п.), то следует установить miniters=1.
     |  ascii: bool или str, опциональный параметр
     |      Если не указано или False, то используются unicode (красивые блоки)
     |      для заполнения полосы измерителя. Запасной вариант - использовать
     |      символы ASCII characters " 123456789#".
     |  disable: bool, опциональный параметр
     |      Отключить ли всю оболочку панели полосы прогресса
     |      [default: False]. Если установлено в None, то запрет действует на non-TTY.
     |  unit: str, опциональный параметр
     |      Строка, которая используется для определения единиц каждой итерации
     |      [default: it].
     |  unit_scale: bool, или int, или float, опциональный параметр
     |      Если 1 или True, то количество итераций будет уменьшено/масштабировано
     |      автоматически, и будет добавлен метрический префикс в соответствии
     |      со стандартом International System of Units (kilo, mega, и т. п.).
     |      [default: False]. Если любое другое ненулевое число, то будет
     |      масштабирование `total` и `n`.
     |  dynamic_ncols: bool, опциональный параметр
     |      Если установлено, то постоянно меняет `ncols` и `nrows` для окружения
     |      (позволяется изменение размера окна) [default: False].
     |  smoothing: float, опциональный параметр
     |      Экспоненциальный коэффициент сглаживания скользящего среднего для
     |      оценки скорости (игнорируется в режиме GUI). Диапазон от 0 (средняя
     |      скорость) до 1 (текущая/немедленная скорость) [default: 0.3].
     |  bar_format: str, опциональный параметр
     |      Указывает пользовательское форматирование строки полосы. Может ухудшить
     |      производительность. [default: '{l_bar}{bar}{r_bar}'], где
     |      l_bar='{desc}: {percentage:3.0f}%|' и
     |      r_bar='| {n_fmt}/{total_fmt} [{elapsed}< {remaining}, '
     |          '{rate_fmt}{postfix}]'
     |      Возможные переменные: l_bar, bar, r_bar, n, n_fmt, total, total_fmt,
     |          percentage, elapsed, elapsed_s, ncols, nrows, desc, unit,
     |          rate, rate_fmt, rate_noinv, rate_noinv_fmt,
     |          rate_inv, rate_inv_fmt, postfix, unit_divisor,
     |          remaining, remaining_s, eta.
     |      Обратите внимание, что завершающий ": " автоматически удаляется
     |      после {desc}, если оно пустое.
     |  initial: int или float, опциональный параметр
     |      Начальное значение счетчика. Полезный параметр, когда перезапускается
     |      полоса прогресса [default: 0]. Если используется float, рассмотрите
     |      указать `{n:.3f}` или нечто подобное в `bar_format`, или указать
     |      `unit_scale`.
     |  position: int, опциональный параметр
     |      Указывает смещение строки для печати этой полосы (начиная от 0).
     |      Автоматическое, если не указано. Полезно для управления несколькими
     |      полосками одновременно (например из потоков).
     |  postfix: dict или *, опциональный параметр
     |      Указывает дополнительную статистику для отображения в конце полосы.
     |      Вызывает `set_postfix(**postfix)` если это возможно (dict).
     |  unit_divisor: float, опциональный параметр
     |      [default: 1000], игнорируется, за исключением когда `unit_scale` True.
     |  write_bytes: bool, опциональный параметр
     |      Следует ли записывать байты. Если (default: False), то будет записывать
     |      unicode.
     |  lock_args: tuple, опциональный параметр
     |      Передается в `refresh` для промежуточного вывода (инициализация,
     |      итерация и обновление).
     |  nrows: int, опциональный параметр
     |      Высота экрана. Если указано, то скрывает вложенные полосы вне этой
     |      границы. Если не указано, то пытается использовать высоту окружения.
     |      Запасной вариант 20.
     |  colour: str, опциональный параметр
     |      Цвет полосы (например 'green', '#00ff00').
     |  delay: float, опциональный параметр
     |      Не отображать, пока [default: 0] не истечет указанное количество
     |      секунд.
     |  gui: bool, опциональный параметр
     |      ПРЕДУПРЕЖДЕНИЕ: внутренний параметр - не используйте.
     |      Вместо этого используйте tqdm.gui.tqdm(...). Если установлено, то
     |      будет пытаться использовать анимации matplotlib для графического
     |      вывода [default: False].
     |
     |  Возвращает
     |  ----------
     |  out: decorated iterator.
     |
     |  Порядок разрешения метода:
     |      tqdm
     |      tqdm.utils.Comparable
     |      builtins.object
     |
     |  Определены методы класса:
     |
     |  __bool__(self)
     |
     |  __contains__(self, item)
     |
     |  __del__(self)
     |
     |  __enter__(self)
     |
     |  __exit__(self, exc_type, exc_value, traceback)
     |
     |  __hash__(self)
     |      Возвратит hash(self).
     |
     |  __init__ = _method(
     |      self,
     |      iterable=None,
     |      desc=None,
     |      total=None,
     |      leave=True,
     |      file=None,
     |      ncols=None,
     |      mininterval=0.1,
     |      maxinterval=10.0,
     |      miniters=None,
     |      ascii=None,
     |      disable=False,
     |      unit='it',
     |      unit_scale=False,
     |      dynamic_ncols=False,
     |      smoothing=0.3,
     |      bar_format=None,
     |      initial=0,
     |      position=None,
     |      postfix=None,
     |      unit_divisor=1000,
     |      write_bytes=False,
     |      lock_args=None,
     |      nrows=None,
     |      colour=None,
     |      delay=0.0,
     |      gui=False,
     |      **kwargs
     |  ) from functools.partialmethod._make_unbound_method.< locals>
     |
     |  __iter__(self)
     |      Для использования с целью обратной совместимости:
     |      for x in tqdm(iterable)
     |
     |  __len__(self)
     |
     |  __reversed__(self)
     |
     |  __str__(self)
     |      Возвращает str(self).
     |
     |  clear(self, nolock=False)
     |      Очистит текущее отображение полосы.
     |
     |  close(self)
     |      Очистка и (если leave=False) закрытие progressbar.
     |
     |  display(self, msg=None, pos=None)
     |      Использует `self.sp` для отображения `msg` в указанной `pos`.
     |
     |      Рассмотрите перезагрузку этой функции, когда наследуется для
     |      использования, например:
     |      `self.some_frontend(**self.format_dict)` вместо `self.sp`.
     |
     |      Параметры
     |      ---------
     |      msg: str, опциональный параметр. Что отображать
     |           (default: `repr(self)`).
     |      pos: int, опциональный параметр. Позиция для `moveto`
     |           (default: `abs(self.pos)`).
     |
     |  moveto(self, n)
     |
     |  refresh(self, nolock=False, lock_args=None)
     |      Принудительно обновит отображение этой полосы.
     |
     |      Параметры
     |      ---------
     |      nolock: bool, опциональный параметр
     |          Если `True`, то не делается блокировка.
     |          Если [default: `False`]: вызовет `acquire()` для внутренней
     |          блокировки.
     |      lock_args: tuple, опциональный параметр
     |          Передается во внутреннюю блокировку `acquire()`.
     |          Если указано, то будет только `display()`, если `acquire()`
     |          возвратит `True`.
     |
     |  reset(self, total=None)
     |      Сбросит в 0 итерации для повторного использования.
     |      Рассмотрите в комбинации с `leave=True`.
     |
     |      Параметры
     |      ---------
     |      total: int или float, опциональный параметр. Общее значение,
     |             используемое для новой полосы.
     |
     |  set_description(self, desc=None, refresh=True)
     |      Установит/модифицирует описание полосы прогресса.
     |
     |      Параметры
     |      ---------
     |      desc: str, опциональный параметр
     |      refresh: bool, опциональный параметр
     |          Принудительное обновление [default: True].
     |
     |  set_description_str(self, desc=None, refresh=True)
     |      Установит/изменит описание без добавления ': '.
     |
     |  set_postfix(self, ordered_dict=None, refresh=True, **kwargs)
     |      Установит/изменит постфикс (дополнительные звездочки)
     |      с автоматическим форматированием на основе типа данных.
     |
     |      Параметры
     |      ---------
     |      ordered_dict: dict или OrderedDict, опциональный параметр
     |      refresh: bool, опциональный параметр
     |          Принудительное обновление [default: True].
     |      kwargs: dict, опциональный параметр
     |
     |  set_postfix_str(self, s='', refresh=True)
     |      Постфикс без расширения словаря, аналогично обработке префиксов.
     |
     |  unpause(self)
     |      Рестарт таймера tqdm для последнего времени печати.
     |
     |  update(self, n=1)
     |      Обновление полосы прогресса вручную, полезно для потоков, таких
     |      как чтение файлов.
     |      Например:
     |      >>> t = tqdm(total=filesize) # инициализация
     |      >>> for current_buffer in stream:
     |      ...    ...
     |      ...    t.update(len(current_buffer))
     |      >>> t.close()
     |      Последняя строка настоятельно рекомендуется, однако возможно
     |      она не нужна, если `t.update()` будет вызван таким образом, что
     |      `filesize` будет точно достигнут и распечатан.
     |
     |      Параметры
     |      ---------
     |      n: int или float, опциональный параметр
     |          Инкремент для добавления к внутреннему счетчику итераций
     |          [default: 1]. Если используется float, то рассмотрите
     |          указание `{n:.3f}` или подобное в `bar_format`, или
     |          указание `unit_scale`.
     |
     |      Возвращает
     |      ----------
     |      out: bool или None
     |          True, если сработал `display()`.
     |
     |  ----------------------------------------------------------------------
     |  Определены методы класса:
     |
     |  external_write_mode(file=None, nolock=False)
     |      Запретит tqdm внутри контекста и обновит tqdm при выходе.
     |      Полезно, когда пишется стандартный поток вывода.
     |
     |  get_lock()
     |      Получение глобальной блокировки. Создайте, если она не существует.
     |
     |  pandas(**tqdm_kwargs)
     |      Регистрирует текущий класс `tqdm` вместе с pandas.core.
     |          ( frame.DataFrame
     |          | series.Series
     |          | groupby.(generic.)DataFrameGroupBy
     |          | groupby.(generic.)SeriesGroupBy
     |          ).progress_apply
     |
     |      Будет создан новый экземпляр каждый раз при вызове `progress_apply`,
     |      и каждый экземпляр будет автоматически вызывать `close()` при
     |      завершении.
     |
     |      Параметры
     |      ---------
     |      tqdm_kwargs: аргументы для экземпляра tqdm
     |
     |      Примеры
     |      -------
     |      >>> import pandas as pd
     |      >>> import numpy as np
     |      >>> from tqdm import tqdm
     |      >>> from tqdm.gui import tqdm as tqdm_gui
     |      >>>
     |      >>> df = pd.DataFrame(np.random.randint(0, 100, (100000, 6)))
     |      >>> tqdm.pandas(ncols=50)  # можно использовать tqdm_gui,
     |                                 # опционально kwargs, и т. п.
     |      >>> # Теперь вы можете использовать `progress_apply` вместо `apply`
     |      >>> df.groupby(0).progress_apply(lambda x: x**2)
     |
     |      Ссылки
     |      ------
     |      < https://stackoverflow.com/questions/18603270/
     |        progress-indicator-during-pandas-operations-python>
     |
     |  set_lock(lock)
     |      Установит глобальную блокировку.
     |
     |  wrapattr(stream, method, total=None, bytes=True, **tqdm_kwargs)
     |      stream: объект наподобие файла.
     |      method: str, "read" или "write". Результат `read()` и
     |          первый аргумент `write()` должен иметь `len()`.
     |
     |      >>> with tqdm.wrapattr(file_obj, "read", total=file_obj.size) as fobj:
     |      ...     while True:
     |      ...         chunk = fobj.read(chunk_size)
     |      ...         if not chunk:
     |      ...             break
     |
     |  write(s, file=None, end='\n', nolock=False)
     |      Печатает сообщение через tqdm (без наложения на полосы прогресса).
     |
     |  ----------------------------------------------------------------------
     |  Определены статические методы:
     |
     |  __new__(cls, *_, **__)
     |      Создаст и возвратит новый объект. См. help(type) для точной сигнатуры.
     |
     |  format_interval(t)
     |      Форматирует количество секунд как время часов, [H:]MM:SS
     |
     |      Параметры
     |      ---------
     |      t: int
     |          Количество секунд.
     |
     |      Возвратит
     |      ---------
     |      out: str
     |          [H:]MM:SS
     |
     |  format_meter(
     |      n,
     |      total,
     |      elapsed,
     |      ncols=None,
     |      prefix='',
     |      ascii=False,
     |      unit='it',
     |      unit_scale=False,
     |      rate=None,
     |      bar_format=None,
     |      postfix=None,
     |      unit_divisor=1000,
     |      initial=0,
     |      colour=None,
     |      **extra_kwargs
     |  )
     |      Возвратит полосу прогресса на основе строки с заданными параметрами
     |
     |      Параметры
     |      ---------
     |      n: int или float
     |          Количество завершенных итераций.
     |      total: int или float
     |          Ожидаемое количество итераций. Если бессмысленно (None), то
     |          отображается только базовый прогресс (без ETA).
     |      elapsed: float
     |          Количество секунд, прошедших с момента старта.
     |      ncols: int, опциональный параметр
     |          Ширина всего выводимого сообщения. Если указано, то динамически
     |          меняет размер полосы `{bar}`, чтобы она умещалась в этих
     |          границах [default: None]. Если `0`, то напечатает только полосу
     |          (только звездочки). 
     |          Запасной вариант использует `{bar:10}`.
     |      prefix: str, опциональный параметр
     |          Сообщение префикса (включает общую ширину) [default: ''].
     |          Используется как {desc} в строке bar_format.
     |      ascii: bool, опциональный параметр, или str, также опционально
     |          Если не установлено, то используется unicode (красивые блоки)
     |          для заполнения индикатора прогресса [default: False].
     |          Запасной вариант использует символы ASCII " 123456789#".
     |      unit: str, опциональный параметр
     |          Единица итерации [default: 'it'].
     |      unit_scale: bool, int или float, опциональный параметр
     |          Если 1 или True, то это количество итераций, которое будет
     |          напечатано с подходящим префиксом метрики СИ (k = 10^3, M = 10^6,
     |          и т. п.) [default: False]. Если любое не нулевое число, то
     |          будет масштабироваться `total` и `n`.
     |      rate: float, опциональный параметр
     |          Ручное переназначение частоты итерации. Если [default: None],
     |          то используется n/истекло.
     |      bar_format: str, опциональный параметр
     |          Указывает строку пользовательского форматирования полосы
     |          прогресса. [default: '{l_bar}{bar}{r_bar}'], где
     |          l_bar='{desc}: {percentage:3.0f}%|' и
     |          r_bar='| {n_fmt}/{total_fmt} [{elapsed}< {remaining}, '
     |            '{rate_fmt}{postfix}]'
     |          Возможны переменные: l_bar, bar, r_bar, n, n_fmt, total, total_fmt,
     |            percentage, elapsed, elapsed_s, ncols, nrows, desc, unit,
     |            rate, rate_fmt, rate_noinv, rate_noinv_fmt,
     |            rate_inv, rate_inv_fmt, postfix, unit_divisor,
     |            remaining, remaining_s, eta.
     |          Обратите внимание, что завершающий ": " автоматически будет удален
     |          после {desc}, если оно пустое.
     |      postfix: *, опциональный параметр
     |          Подобно `prefix`, но будет помещено в конец (например для
     |          дополнительной статистики).
     |          Замечание: postfix это обычно строка (не словарь) для этого
     |          метода, и если это возможно, то будет установлено значение
     |          postfix = ', ' + postfix. Однако поддерживаются другие типы
     |          (#382).
     |      unit_divisor: float, опциональный параметр
     |          [default: 1000], игнорируется, за исключением `unit_scale` True.
     |      initial: int или float, опциональный параметр
     |          Начальное значение счетчика [default: 0].
     |      colour: str, опциональный параметр
     |          Цвет полосы (например 'green', '#00ff00').
     |
     |      Возвратит
     |      ---------
     |      out: форматированный индикатор прогресса или и статистики,
     |           готовый к отображению.
     |
     |  format_num(n)
     |      Интеллектуальная научная нотация (.3g).
     |
     |      Параметры
     |      ---------
     |      n: int, float или Numeric
     |          Число.
     |
     |      Возвратит
     |      ---------
     |      out: str
     |          Форматированное число.
     |
     |  format_sizeof(num, suffix='', divisor=1000)
     |      Форматирует число (больше единицы) с префиксами порядка величины СИ
     |      (SI Order of Magnitude).
     |
     |      Параметры
     |      ---------
     |      num: float
     |          Число (>= 1) для формата.
     |      suffix: str, опциональный параметр
     |          Пост-постфикс [default: ''].
     |      divisor: float, опциональный параметр
     |          Делитель между префиксами [default: 1000].
     |
     |      Возвратит
     |      -------
     |      out: str
     |          Число с постфиксом единицы СИ порядка величины (Order of Magnitude
     |          SI unit postfix).
     |
     |  status_printer(file)
     |      Управление печатью и обновлением строки символов по месту. Обратите
     |      внимание, что если string длиннее, чем ширина строки, то обновление
     |      по месту может не работать (будет напечатана новая строка при каждом
     |      обновлении).
     |
     |  ----------------------------------------------------------------------
     |  Определены свойства только для чтения:
     |
     |  format_dict
     |      Публичное API для доступа к членам read-only.
     |
     |  ----------------------------------------------------------------------
     |  Определены данные и другие атрибуты:
     |
     |  monitor = None
     |
     |  monitor_interval = 10
     |
     |  ----------------------------------------------------------------------
     |  Методы, унаследованные от tqdm.utils.Comparable:
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __ge__(self, other)
     |      Return self>=value.
     |
     |  __gt__(self, other)
     |      Return self>value.
     |
     |  __le__(self, other)
     |      Return self< =value.
     |
     |  __lt__(self, other)
     |      Return self< value.
     |
     |  __ne__(self, other)
     |      Return self!=value.
     |
     |  ----------------------------------------------------------------------
     |  Дескрипторы данных, унаследованные от tqdm.utils.Comparable:
     |
     |  __dict__
     |      словарь для переменных экземпляра
     |
     |  __weakref__
     |      список слабых ссылок на объект
    class tqdm_gui(tqdm.std.tqdm)
     |  tqdm_gui(*args, **kwargs)
     |
     |  Экспериментальная Matplotlib GUI версия tqdm!
     |
     |  Порядок разрешения метода:
     |      tqdm_gui
     |      tqdm.std.tqdm
     |      tqdm.utils.Comparable
     |      builtins.object
     |
     |  Определены методы:
     |
     |  __init__(self, *args, **kwargs)
     |      Инициализирует self. См. help(type(self)) для точной сигнатуры.
     |
     |  clear(self, *_, **__)
     |      Очистит текущее отображение полосы прогресса.
     |
     |  close(self)
     |      Очистка и (если leave=False) закрытие progressbar.
     |
     |  display(self, *_, **__)
     |      Использует `self.sp` для отображения `msg` в указанной `pos`.
     |
     |      Рассмотрите перезагрузку этой функции, когда наследуется для
     |      использования, например: `self.some_frontend(**self.format_dict)`
     |      вместо `self.sp`.
     |
     |      Параметры
     |      ---------
     |      msg: str, опциональный параметр. Что отображать
     |           (default: `repr(self)`).
     |      pos: int, опциональный параметр. Позиция для`moveto`
     |           (default: `abs(self.pos)`).
     |
     |  ----------------------------------------------------------------------
     |  Методы, унаследованные от tqdm.std.tqdm:
     |
     |  __bool__(self)
     |
     |  __contains__(self, item)
     |
     |  __del__(self)
     |
     |  __enter__(self)
     |
     |  __exit__(self, exc_type, exc_value, traceback)
     |
     |  __hash__(self)
     |      Возвратит hash(self).
     |
     |  __iter__(self)
     |      Обратная совместимость для использования: for x in tqdm(iterable)
     |
     |  __len__(self)
     |
     |  __reversed__(self)
     |
     |  __str__(self)
     |      Return str(self).
     |
     |  moveto(self, n)
     |
     |  refresh(self, nolock=False, lock_args=None)
     |      Принудительное отображение этой полосы прогресса.
     |
     |      Параметры
     |      ---------
     |      nolock: bool, опциональный параметр
     |          Если `True`, то блокировка не выполняется.
     |          Если [default: `False`]: вызовет `acquire()` на внутренней
     |          блокировке.
     |      lock_args: кортеж (tuple), опциональный параметр
     |          Передается в `acquire()` внутренней блокировки.
     |          Если указано, то будет только `display()`, если `acquire()`
     |          возвратила `True`.
     |
     |  reset(self, total=None)
     |      Сбрасывает в 0 итерации для повторного использования.
     |      Рассмотрите в комбинации с `leave=True`.
     |
     |      Параметры
     |      ---------
     |      total: int или float, опциональный параметр. Общее значение
     |             для использования с новой полосой прогресса.
     |
     |  set_description(self, desc=None, refresh=True)
     |      Установит/изменит описание полосы прогресса.
     |
     |      Параметры
     |      ---------
     |      desc: str, опциональный параметр
     |      refresh: bool, опциональный параметр
     |          Принудительное обновление [default: True].
     |
     |  set_description_str(self, desc=None, refresh=True)
     |      Установит/изменит описание без добавления ': '.
     |
     |  set_postfix(self, ordered_dict=None, refresh=True, **kwargs)
     |      Установит/изменит постфикс (дополнительный статус) с автоматическим
     |      форматированием на основе типа данных.
     |
     |      Параметры
     |      ---------
     |      ordered_dict: dict или OrderedDict, опциональный параметр
     |      refresh  : bool, опциональный параметр
     |          Принудительное обновление [default: True].
     |      kwargs: dict, опциональный параметр
     |
     |  set_postfix_str(self, s='', refresh=True)
     |      остфикс без расширения словаря, аналогично обработке префиксов.
     |
     |  unpause(self)
     |      Перезапуск таймера tqdm от последнего времени печати.
     |
     |  update(self, n=1)
     |      Обновление вручную полосы прогресса, полезно для потоков,
     |      таких как чтение файлов. Например:
     |
     |      >>> t = tqdm(total=filesize) # Инициализация
     |      >>> for current_buffer in stream:
     |      ...    ...
     |      ...    t.update(len(current_buffer))
     |      >>> t.close()
     |      Последняя строка настоятельно рекомендуется, однако возможно
     |      она не нужна, если `t.update()` будет вызван таким образом, что
     |      `filesize` будет точно достигнут и распечатан.
     |
     |      Параметры
     |      ---------
     |      n: int или float, опциональный параметр
     |          Инкремент для добавления к внутреннему счетчику итераций
     |          [default: 1]. Если используется float, то рассмотрите указание
     |          `{n:.3f}` или чего-то подобного в `bar_format`, или рассмотрите
     |          указание `unit_scale`.
     |
     |      Возвратит
     |      ---------
     |      out: bool или None
     |          True, если сработал `display()`.
     |
     |  ----------------------------------------------------------------------
     |  Методы класса, унаследованные от tqdm.std.tqdm:
     |
     |  external_write_mode(file=None, nolock=False)
     |      Запретит tqdm внутри контекста и обновит tqdm при выходе.
     |      Полезно, когда пишется стандартный поток вывода.
     |
     |  get_lock()
     |      Получение глобальной блокировки. Создайте, если она не существует.
     |
     |  pandas(**tqdm_kwargs)
     |      Регистрирует текущий класс `tqdm` вместе с pandas.core.
     |          ( frame.DataFrame
     |          | series.Series
     |          | groupby.(generic.)DataFrameGroupBy
     |          | groupby.(generic.)SeriesGroupBy
     |          ).progress_apply
     |
     |      Будет создан новый экземпляр каждый раз при вызове `progress_apply`,
     |      и каждый экземпляр будет автоматически вызывать `close()` при
     |      завершении.
     |
     |      Параметры
     |      ---------
     |      tqdm_kwargs: аргументы для экземпляра tqdm
     |
     |      Примеры
     |      -------
     |      >>> import pandas as pd
     |      >>> import numpy as np
     |      >>> from tqdm import tqdm
     |      >>> from tqdm.gui import tqdm as tqdm_gui
     |      >>>
     |      >>> df = pd.DataFrame(np.random.randint(0, 100, (100000, 6)))
     |      >>> tqdm.pandas(ncols=50)  # можно использовать tqdm_gui,
     |                                 # опционально kwargs, и т. п.
     |      >>> # Теперь вы можете использовать `progress_apply` вместо `apply`
     |      >>> df.groupby(0).progress_apply(lambda x: x**2)
     |
     |      Ссылки
     |      ------
     |      < https://stackoverflow.com/questions/18603270/
     |        progress-indicator-during-pandas-operations-python>
     |
     |  set_lock(lock)
     |      Установит глобальную блокировку.
     |
     |  wrapattr(stream, method, total=None, bytes=True, **tqdm_kwargs)
     |      stream: объект наподобие файла.
     |      method: str, "read" или "write". Результат `read()` и
     |          первый аргумент `write()` должен иметь `len()`.
     |
     |      >>> with tqdm.wrapattr(file_obj, "read", total=file_obj.size) as fobj:
     |      ...     while True:
     |      ...         chunk = fobj.read(chunk_size)
     |      ...         if not chunk:
     |      ...             break
     |
     |  write(s, file=None, end='\n', nolock=False)
     |      Печатает сообщение через tqdm (без наложения на полосы прогресса).
     |
     |  ----------------------------------------------------------------------
     |  Статические методы, унаследованные из tqdm.std.tqdm:
     |
     |  __new__(cls, *_, **__)
     |      Создаст и возвратит новый объект. См. help(type) для точной сигнатуры.
     |
     |  format_interval(t)
     |      Форматирует количество секунд как время часов, [H:]MM:SS
     |
     |      Параметры
     |      ---------
     |      t: int
     |          Количество секунд.
     |
     |      Возвратит
     |      ---------
     |      out: str
     |          [H:]MM:SS
     |
     |  format_meter(
     |      n,
     |      total,
     |      elapsed,
     |      ncols=None,
     |      prefix='',
     |      ascii=False,
     |      unit='it',
     |      unit_scale=False,
     |      rate=None,
     |      bar_format=None,
     |      postfix=None,
     |      unit_divisor=1000,
     |      initial=0,
     |      colour=None,
     |      **extra_kwargs
     |  )
     |      Возвратит полосу прогресса на основе строки с заданными параметрами
     |
     |      Параметры
     |      ---------
     |      n: int или float
     |          Количество завершенных итераций.
     |      total: int или float
     |          Ожидаемое количество итераций. Если бессмысленно (None), то
     |          отображается только базовый прогресс (без ETA).
     |      elapsed: float
     |          Количество секунд, прошедших с момента старта.
     |      ncols: int, опциональный параметр
     |          Ширина всего выводимого сообщения. Если указано, то динамически
     |          меняет размер полосы `{bar}`, чтобы она умещалась в этих
     |          границах [default: None]. Если `0`, то напечатает только полосу
     |          (только звездочки). 
     |          Запасной вариант использует `{bar:10}`.
     |      prefix: str, опциональный параметр
     |          Сообщение префикса (включает общую ширину) [default: ''].
     |          Используется как {desc} в строке bar_format.
     |      ascii: bool, опциональный параметр, или str, также опционально
     |          Если не установлено, то используется unicode (красивые блоки)
     |          для заполнения индикатора прогресса [default: False].
     |          Запасной вариант использует символы ASCII " 123456789#".
     |      unit: str, опциональный параметр
     |          Единица итерации [default: 'it'].
     |      unit_scale: bool, int или float, опциональный параметр
     |          Если 1 или True, то это количество итераций, которое будет
     |          напечатано с подходящим префиксом метрики СИ (k = 10^3, M = 10^6,
     |          и т. п.) [default: False]. Если любое не нулевое число, то
     |          будет масштабироваться `total` и `n`.
     |      rate: float, опциональный параметр
     |          Ручное переназначение частоты итерации. Если [default: None],
     |          то используется n/истекло.
     |      bar_format: str, опциональный параметр
     |          Указывает строку пользовательского форматирования полосы прогресса.
     |          Может ухудшать производительность. [default: '{l_bar}{bar}{r_bar}'],
     |          где l_bar='{desc}: {percentage:3.0f}%|' и
     |          r_bar='| {n_fmt}/{total_fmt} [{elapsed}< {remaining}, '
     |            '{rate_fmt}{postfix}]'
     |          Возможны переменные: l_bar, bar, r_bar, n, n_fmt, total, total_fmt,
     |            percentage, elapsed, elapsed_s, ncols, nrows, desc, unit,
     |            rate, rate_fmt, rate_noinv, rate_noinv_fmt,
     |            rate_inv, rate_inv_fmt, postfix, unit_divisor,
     |            remaining, remaining_s, eta.
     |          Обратите внимание, что завершающий ": " автоматически будет удален
     |          после {desc}, если оно пустое.
     |      postfix: *, опциональный параметр
     |          Подобно `prefix`, но будет помещено в конец (например для
     |          дополнительной статистики).
     |          Замечание: postfix это обычно строка (не словарь) для этого
     |          метода, и если это возможно, то будет установлено значение
     |          postfix = ', ' + postfix. Однако поддерживаются другие типы
     |          (#382).
     |      unit_divisor: float, опциональный параметр
     |          [default: 1000], игнорируется, за исключением `unit_scale` True.
     |      initial: int или float, опциональный параметр
     |          Начальное значение счетчика [default: 0].
     |      colour: str, опциональный параметр
     |          Цвет полосы (например 'green', '#00ff00').
     |
     |      Returns
     |      -------
     |      out: форматированный индикатор прогресса или и статистики,
     |           готовый к отображению.
     |
     |  format_num(n)
     |      Интеллектуальная научная нотация (.3g).
     |
     |      Параметры
     |      ---------
     |      n: int, float или Numeric
     |          Число.
     |
     |      Возвратит
     |      ---------
     |      out: str
     |          Форматированное число.
     |
     |  format_sizeof(num, suffix='', divisor=1000)
     |      Форматирует число (больше единицы) с префиксами порядка величины СИ
     |      (SI Order of Magnitude).
     |
     |      Параметры
     |      ---------
     |      num: float
     |          Число (>= 1) для формата.
     |      suffix: str, опциональный параметр
     |          Пост-постфикс [default: ''].
     |      divisor: float, опциональный параметр
     |          Делитель между префиксами [default: 1000].
     |
     |      Возвратит
     |      -------
     |      out: str
     |          Число с постфиксом единицы СИ порядка величины (Order of Magnitude
     |          SI unit postfix).
     |
     |  status_printer(file)
     |      Управление печатью и обновлением строки символов по месту. Обратите
     |      внимание, что если string длиннее, чем ширина строки, то обновление
     |      по месту может не работать (будет напечатана новая строка при каждом
     |      обновлении).
     |
     |  ----------------------------------------------------------------------
     |  Свойства только для чтения, унаследованные из tqdm.std.tqdm:
     |
     |  format_dict
     |      Публичное API для доступа к членам класса только для чтения.
     |
     |  ----------------------------------------------------------------------
     |  Данные и другие атрибуты, унаследованные из tqdm.std.tqdm:
     |
     |  monitor = None
     |
     |  monitor_interval = 10
     |
     |  ----------------------------------------------------------------------
     |  Методы, унаследованные из tqdm.utils.Comparable:
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __ge__(self, other)
     |      Return self>=value.
     |
     |  __gt__(self, other)
     |      Return self>value.
     |
     |  __le__(self, other)
     |      Return self< =value.
     |
     |  __lt__(self, other)
     |      Return self< value.
     |
     |  __ne__(self, other)
     |      Return self!=value.
     |
     |  ----------------------------------------------------------------------
     |  Дескрипторы данных, унаследованные из tqdm.utils.Comparable:
     |
     |  __dict__
     |      словарь для переменных экземпляра
     |
     |  __weakref__
     |      список слабых ссылок на объект

ФУНКЦИИ main( fp=< _io.TextIOWrapper name='< stderr>' mode='w' encoding='utf-8'>, argv=None ) Параметры (только для внутреннего использования) --------- fp: объект наподобие файла для tqdm argv: список (default: sys.argv[1:])
tgrange(*args, **kwargs) Шорткат для `tqdm.gui.tqdm(range(*args), **kwargs)`.
tnrange(*args, **kwargs) Шорткат для `tqdm.notebook.tqdm(range(*args), **kwargs)`.
tqdm_notebook(*args, **kwargs) Для полной документации см. tqdm.notebook.tqdm
tqdm_pandas(tclass, **tqdm_kwargs) Регистрирует указанный экземпляр `tqdm` вместе с `pandas.core.groupby.DataFrameGroupBy.progress_apply`.
trange(*args, **kwargs) Шорткат для tqdm(range(*args), **kwargs).
DATA __all__ = ['tqdm', 'tqdm_gui', 'trange', 'tgrange', 'tqdm_pandas', 'tq...
VERSION 4.67.1
FILE /.pyenv/versions/3.13.0/lib/python3.13/site-packages/tqdm/__init__.py

[Ссылки]

1. Python How to make a terminal progress bar using tqdm site:geeksforgeeks.org.

 

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


Защитный код
Обновить

Top of Page