[ Foro de Python ]

Crear ProgressBar en mi Script

23-May-2016 23:31
Invitado (Eduardo Santini)
1 Respuestas

Que tal, estoy haciendo un script en el cual copie archivos de un FTP a otro.

Ya me funciona el codigo, pero me imprime valores en cuantos bytes a copiado al servidor2, lo que necesito es que al momento de ejecutar el script me aparesca una barra de progreso en porcentaje y que cuando finalize de copiar al servidor2, borre el archivo del servidor1.

Les dejo mi script, para el progressbar estaba utilizando PyQt. Pero si alguien sabe como hacerlo con otro GUI estaria perfecto.


import ftplib

from_ftp = ftplib.FTP("servidor1", "usuario1", "contraseña1")

to_ftp = ftplib.FTP("servidor2", "usuario2", "contraseña2")

to_ftp.cwd("/Respaldos")

to_ftp.retrlines('LIST')

from_Sock = from_ftp.transfercmd("RETR /ISEC/Paulina.zip")

to_Sock = to_ftp.transfercmd('STOR /Respaldos/ISEC/Paulina.zip')

state = 0



while 1:

   block = from_Sock.recv(4096)

   if len(block) == 0:

       break

   state += len(block)



   while len(block):

       print "Transferidos:", state

       sentlen = to_Sock.send(block)

       block = block[sentlen:]


from_Sock.close()

to_Sock.close()

from_ftp.quit()

to_ftp.quit()


28-May-2016 12:20
Nacho Cabanes (+31)

El cualquier "while" que lea o envíe datos podrás añadir la rutina de actualizar la barra de progreso.

También es recomendable que antes compruebes el tamaño, para saber cuántas lecturas o envíos tendrás que hacer, de modo que la barra de progreso muestre una estimación real del progreso final; si no lo haces así, la barra se moverá pero no se podrá estimar cuándo va a terminar.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)