ProgressBar того же времени, как функция - PullRequest
0 голосов
/ 05 мая 2019

Я хочу, чтобы индикатор выполнения совпадал по времени с функцией, запускался при ее запуске и останавливался по ее завершении

Я пытался использовать циклы while, но это не сработало.

def clean(path):
    for path in paths:
        try:
            rmtree(path)
        except OSError:
            pass
while clean is True:
    for i in range(1):
        sys.stdout.write("%s" % (" " * toolbar_width))
        sys.stdout.flush()
        sys.stdout.write("\b" * (toolbar_width + 1))  

        for i in range(toolbar_width):
            sleep(0.1)  # do real work here
            # update the bar
            sys.stdout.write("█████")
            sys.stdout.flush()
        sys.stdout.write("\nDone Cleaning\n")

Я ожидаю, что индикатор выполнения напечатает его в соответствии с функцией clean(), когда он работает, он будет работать, а когда это будет сделано, он остановится.

1 Ответ

0 голосов
/ 05 мая 2019

Вы пропускаете ":" после вашего "Истинного" утверждения. Ваш код в противном случае правильный. Просто убедитесь, что вы проверите свою работу! Это должно выглядеть так:

def clean(path):
    for path in paths:
        try:
            rmtree(path)
        except OSError:
            pass
    while clean is True:
        for i in range(1):
            sys.stdout.write("%s" % (" " * toolbar_width))
            sys.stdout.flush()
            sys.stdout.write("\b" * (toolbar_width + 1))  

            for i in range(toolbar_width):
                sleep(0.1)  # do real work here
                # update the bar
                sys.stdout.write("█████")
                sys.stdout.flush()
            sys.stdout.write("\nDone Cleaning\n")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...