Básicamente quiero hacer lo contrario de lo que hizo este tipo ... jeje.Imprimir en la misma línea y no en una nueva línea en python
Python Script: Print new line each time to shell rather than update existing line
que tienen un programa que me está diciendo qué tan avanzado está.
for i in some_list:
#do a bunch of stuff.
print i/len(some_list)*100," percent complete"
Así que si len (some_list) fuera 50, obtendría la última línea impresa 50 veces más. Quiero imprimir una línea y seguir actualizando esa línea. Sé que sé que esta es probablemente la pregunta más difícil que leerás todo el día. Simplemente no puedo entender las cuatro palabras que necesito poner en google para obtener la respuesta.
¡Actualización! Intenté la sugerencia de mvds que parecía correcta. El nuevo código
print percent_complete," \r",
Porcentaje completa es sólo una cadena (que estaba haciendo abstracción primera vez ahora tratando de ser un literal). El resultado ahora es que ejecuta el programa, no imprime NADA hasta que el programa termina, y luego imprime "100 por ciento completo" en una y solo una línea.
Sin el retorno de carro (pero con la coma, la mitad de la sugerencia de mvds) no imprime nada hasta el final. Y luego imprime:
0 percent complete 2 percent complete 3 percent complete 4 percent complete
Y así sucesivamente. Entonces, ahora el nuevo problema es que con la coma no se imprime hasta que el programa finaliza.
Con el retorno de carro y sin coma, se comporta exactamente igual que con ninguno de los dos.
Es posible que también desee comprobar 'sys.stdout.isatty()' por lo que no escupir estas cosas cuando no se ejecuta en un terminal. – mvds
Estoy ejecutando esto desde una terminal ... aunque es una buena idea. Estoy seguro de que lo necesitaré en algún momento. – chriscauley
el fondo es, por cierto, que en varios idiomas el \ n (que ahora omite) sirve como una señal implícita para descargar a stdout. De lo contrario, mucha gente se confundirá. – mvds