Estoy escribiendo un descargador ftp simple. Parte de que el código es algo como esto:salida a la misma línea que sobrescribe la salida anterior? python (2.5)
ftp.retrbinary("RETR " + file_name, process)
que llamo proceso de función para gestionar la devolución de llamada:
def process(data):
print os.path.getsize(file_name)/1024, 'KB/', size, 'KB downloaded!'
file.write(data)
y la salida es algo como esto:
1784 KB/KB 1829 downloaded!
1788 KB/KB 1829 downloaded!
etc...
pero Quiero que imprima esta línea y la próxima vez la vuelva a imprimir/actualizar para que solo se muestre una vez y veré el progreso de esa descarga ...
¿Cómo se puede hacer?
Tenga en cuenta que la función de impresión también se puede usar en python 2.6+ agregando la siguiente importación en la parte superior del archivo: 'from __future__ import print_function'. – janin
en python <3.0 una coma al final de la instrucción evitará un "\ n": 'print" foo ",' Sin embargo, usted todavía necesita enjuagar después de eso para ver el cambio: 'sys.stdout.flush() ' –
Encontré que necesitaba incluir el' \ r' al comienzo de la cadena, y establecer 'end = ''' en su lugar para que esto funcione. No creo que a mi terminal le guste cuando termino con '\ r' – Jezzamon