Zasadniczo chcę zrobić coś odwrotnego niż ten facet ... hehe.Wydrukuj do tej samej linii, a nie do nowej linii w pytonie
Python Script: Print new line each time to shell rather than update existing line
Mam program, który mówi mi, jak daleko to jest.
for i in some_list:
#do a bunch of stuff.
print i/len(some_list)*100," percent complete"
Jeśli więc len (some_list) był 50, wydrukowałbym ostatnią linię 50 razy. Chcę wydrukować jedną linię i aktualizować tę linię. Wiem, że wiem, że to prawdopodobnie najśmielsze pytanie, które przeczytasz cały dzień. Po prostu nie mogę wymyślić czterech słów, które muszę umieścić w Google, aby uzyskać odpowiedź.
Zaktualizować! Wypróbowałem sugestię mvds, która wydaje się właściwa. Nowy kod
print percent_complete," \r",
Procent pełna jest po prostu ciągiem (abstrahując byłem po raz pierwszy teraz stara się być dosłowny). Rezultatem jest to, że uruchamia program, nie drukuje nic, dopóki program się nie skończy, a następnie wypisze "ukończone w 100%" w jednej i tylko jednej linii.
Bez powrotu karetki (ale z przecinkiem, połowa sugestii mvds) nic nie drukuje do końca. Następnie drukuje:
0 percent complete 2 percent complete 3 percent complete 4 percent complete
I tak dalej. Teraz nowym problemem jest to, że z przecinkiem nie drukuje aż do zakończenia programu.
Przy powrocie karetki i bez przecinka zachowuje się tak samo, jak w przypadku żadnego z nich.
Możesz także chcieć sprawdzić 'sys.stdout.isatty()', abyś nie wypluł tych rzeczy, gdy nie działa w terminalu. – mvds
Używam tego z terminala ... dobra myśl. Na pewno będę to potrzebował w pewnym momencie. – chriscauley
tło jest, przy okazji, że w kilku językach \ n (który teraz pomijamy) służy jako niejawny sygnał do wypuszczenia na standardowe wyjście. W przeciwnym razie wiele osób będzie zdezorientowanych. – mvds