Как взять обновление прогресса и превратить в индикатор выполнения? - PullRequest
0 голосов
/ 11 апреля 2019

Я использую API для преобразования текста в текст и, ожидая результатов, могу распечатать текущий процент прогресса с помощью:

    while not operation.done():
        print(operation.metadata.progress_percent)
        time.sleep(5)
    print(operation.metadata.progress_percent)

И получите это:

    0
    2
    3
    ...

Как я могу превратить его в индикатор выполнения?

1 Ответ

0 голосов
/ 12 апреля 2019

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

Пример печати индикатора выполнения:

import time

def progress_bar(progress, total=100, bar_length=20):
  # How much of the bar should be filled
  fill = progress * bar_length // total
  # How much of the bar should be empty
  empty = bar_length - fill
  print(f'[{"#"*fill}{"-"*empty}]', end='\r')
  # Go to next line if done
  if progress == total:
    print()

# Emulate a percentage progress
for i in range(0, 101):
  progress_bar(i)
  time.sleep(0.05)

Это выведет полосу, которая выглядит следующим образом

[##############------]
...