Barra de carga FTP de Python

Estoy cargando un archivo con FTPLib en python y tengo una barra de carga cli con la barra de progreso 2.2. Necesito hacer una barra de carga para indicar el progreso de la carga.

¿Alguien tiene alguna información sobre el tema?

Gracias, giodamelio


Como señaló Senthil Kumaran, hay un parámetro de callback en la función ftplib.storbinary pero no sé cómo usarlo.

Intenté esto. Esperaba que imprimiera el mensaje cada vez que se cargaba un byte.

import ftplib def callback(): print("This is the callback function") s = ftplib.FTP('myserver.com','login','password') # Connect f = open('test.txt','rb') # file to send s.storbinary('STOR test.txt', f, 1024, callback()) # Send the file f.close() # Close file and FTP s.quit() 

Pequeño cambio en tu código:

 import ftplib def callback(p): print("This is the callback function") s = ftplib.FTP('myserver.com','login','password') # Connect f = open('test.txt','rb') # file to send s.storbinary('STOR test.txt', f, 1024, callback) # Send the file f.close() # Close file and FTP s.quit() 

La callback debe ser llamada más tarde. Si lo invoca al pasarlo como parámetro, en su lugar se pasa el valor de retorno. Dado que su función de callback no tiene retorno, pasaría en None .

Una pregunta específica como mostrar un ejemplo de código de lo que intentó probar sería útil para responder. La visualización del progreso mediante un indicador es posible cuando la biblioteca FTP proporciona ciertas funciones de funciones de callback de callback y usted utiliza su función de indicador de progreso (que en este caso es la barra de progreso) y la adjunta a esa callback. En cuanto a la documentación de ftplib , hay disposiciones para adjuntar devoluciones de llamada a ciertos métodos, tal vez eso debería ser útil para usted.