2017-01-17 21 views
10

Pracuję nad małą grą wiersza poleceń w pythonie, w której pokazuję pasek postępu za pomocą modułu tqdm. Wysłuchuję danych wprowadzanych przez użytkownika za pomocą modułu msvcrt w celu przerwania postępu. Po przerwaniu użytkownik może ponownie uruchomić, wpisując "restart" w wierszu poleceń. Drugi raz, gdy wyświetlany jest pasek postępu, zamiast aktualizować tę samą linię z postępem, za każdym razem tworzy nową linię.Drukowanie tqdm do nowej linii

Jak mogę go wyświetlić, aby pokazać postęp w tej samej linii?

Progress bar issue

Ten fragment kodu ilustruje moje użycie paska postępu.

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'") 

Odpowiedz

-1

Spróbuj from tqdm import tqdm_notebook as tqdm zamiast from tqdm import tqdm.

+0

naprawdę? Dotyczy to notebooków jupyter/ipython i naprawdę nie ma tu zastosowania. –

+0

Nic nie pomaga.Problem pozostaje ... – partida