2017-01-17 4 views
10

Я работаю над небольшой командной строкой в ​​python, где я показываю индикатор выполнения, используя модуль tqdm. Я слушаю вход пользователя, используя модуль msvcrt, чтобы прервать прогресс. После прерывания пользователь может перезагрузиться, введя «restart» в командной строке. Во второй раз, когда отображается индикатор выполнения, вместо того, чтобы обновлять ту же строку с прогрессом, каждый раз создается новая строка.tqdm print to newline

Как я могу заставить его показать прогресс на той же линии?

Progress bar issue

Этот фрагмент кода иллюстрирует мое использование индикатора выполнения.

def transfer(): 
    for i in tqdm.tqdm(range(1000), desc="Transfer progress", ncols=100, bar_format='{l_bar}{bar}|'): 
     sleep(.1) 
     if msvcrt.kbhit(): 
      if msvcrt.getwche() == ' ': 
       interrupt() 
       break 

def interrupt(): 
    type("File transfer interrupted, to restart the transfer, type 'restart'") 

ответ

-1

Попробуйте from tqdm import tqdm_notebook as tqdm вместо from tqdm import tqdm.

+0

действительно? Это для ноутбуков jupyter/ipython и на самом деле здесь не применимо. –

+0

Ничего не помогает.проблема остается ... – partida