Zasadniczo chcę zrobić coś przeciwnego do tego, co zrobił ten facet ... hehe.
Python Script: Drukuj nową linię za każdym razem, aby powłoka zamiast aktualizować istniejącą linię
Mam program, który mówi mi, jak daleko jest.
for i in some_list:
#do a bunch of stuff.
print i/len(some_list)*100," percent complete"
Więc jeśli len (some_list) wynosi 50, ostatnia linia została wydrukowana 50 razy. Chcę wydrukować jedną linię i aktualizować tę linię. Wiem, że wiem, że to chyba najtrudniejsze pytanie, które przeczytasz przez cały dzień. Po prostu nie mogę wymyślić czterech słów, które muszę umieścić w Google, aby uzyskać odpowiedź.
Aktualizacja! Wypróbowałem sugestię mvds, która WYDAJE SIĘ słuszna. Nowy kod
print percent_complete," \r",
Procent ukończenia to po prostu ciąg znaków (za pierwszym razem starałem się być dosłowny). W rezultacie uruchamia program, nie drukuje NICZEGO przed zakończeniem programu, a następnie wypisuje „100 procent ukończenia” w jednym i tylko jednym wierszu.
Bez powrotu karetki (ale z przecinkiem, połową sugestii mvds) nic nie drukuje do końca. A potem drukuje:
0 percent complete 2 percent complete 3 percent complete 4 percent complete
I tak dalej. Więc teraz nowym problemem jest to, że przecinek nie jest drukowany, dopóki program nie zostanie zakończony.
Z powrotem karetki i bez przecinka zachowuje się dokładnie tak samo, jak w przypadku żadnego z nich.
sys.stdout.isatty()
aby nie wypluwać tych rzeczy, gdy nie używasz terminala.