Python Script: imprima una línea nueva cada vez que se cargue en lugar de actualizar una línea existente

Soy un novato cuando se trata de python. Tengo un script en python que me da una salida como esta:

[last] ZVZX-W3vo9I: Downloading video webpage [last] ZVZX-W3vo9I: Extracting video information [download] Destination: myvideo.flv [download] 9.9% of 10.09M at 3.30M/s ETA 00:02 

La última línea se mantiene actualizada con nuevos valores de progreso. Quiero cambiar esto. En lugar de actualizar quiero imprimir una nueva línea cada vez. ¿Cómo puedo hacer esto? Creo que la parte en cuestión es esta parte:

 def report_progress(self, percent_str, data_len_str, speed_str, eta_str): """Report download progress.""" self.to_stdout(u'\r[download] %s of %s at %s ETA %s' % (percent_str, data_len_str, speed_str, eta_str), skip_eol=True) 

Si es necesario ver más códigos, hágamelo saber para poder mostrarle lo que se necesita para resolver esto.

Muchas gracias por cualquier ayuda.

Si entiendo su solicitud correctamente, debería poder cambiar esa función a esto:

 def report_progress(self, percent_str, data_len_str, speed_str, eta_str): """Report download progress.""" print u'[download] %s of %s at %s ETA %s' % (percent_str, data_len_str, speed_str, eta_str) 

Eso imprimirá la salida en una nueva línea cada vez.

Estoy pensando que es posible que necesites cambiar:

 skip_eol=True 

a:

 skip_eol=False 

y deshacerse de la ” \r ” para ver qué pasa. Creo que te sorprenderá gratamente 🙂

Puede sacar la \ r, que se mueve al cursor de nuevo al principio de la línea y sacar el skip_eol = True probablemente. Quizás:

  self.to_stdout(u'[download] %s of %s at %s ETA %s' % (percent_str, data_len_str, speed_str, eta_str)) 

El efecto de “actualización” se logra mediante ‘\ r’.

Intenta esto en un shell de Python (2.x):

 print "00000000\r1111" 

Simplemente devuelve el cursor al principio de la línea.