Fondamentalmente voglio fare l'opposto di quello che ha fatto questo ragazzo ... hehe.
Script Python: stampa una nuova riga ogni volta nella shell anziché aggiornare la riga esistente
Ho un programma che mi sta dicendo a che punto è.
for i in some_list:
#do a bunch of stuff.
print i/len(some_list)*100," percent complete"
Quindi se len (some_list) fosse 50, l'ultima riga verrà stampata 50 volte. Voglio stampare una riga e continuare ad aggiornare quella riga. So di sapere che questa è probabilmente la domanda più stupida che leggerai tutto il giorno. Non riesco proprio a capire le quattro parole che devo inserire in Google per ottenere la risposta.
Aggiornare! Ho provato il suggerimento di mvds che SEMBRAVA giusto. Il nuovo codice
print percent_complete," \r",
La percentuale di completamento è solo una stringa (stavo astraggendo la prima volta ora che sto cercando di essere letterale). Il risultato ora è che esegue il programma, non stampa NULLA fino a quando il programma non è finito, quindi stampa "100 percento completo" su una sola riga.
Senza il ritorno a capo (ma con la virgola, metà del suggerimento di mvds) non stampa nulla fino alla fine. E poi stampa:
0 percent complete 2 percent complete 3 percent complete 4 percent complete
E così via. Quindi ora il nuovo problema è che con la virgola non viene stampata fino al termine del programma.
Con il ritorno a capo e senza virgola si comporta esattamente come con nessuno dei due.
sys.stdout.isatty()
modo da non sputare queste cose quando non sei in esecuzione in un terminale.