Python - Barra de progreso en envio ftp

 
Vista:
sin imagen de perfil
Val: 30
Ha disminuido su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

Barra de progreso en envio ftp

Publicado por Manuel (14 intervenciones) el 05/06/2019 08:44:54
HOla amigos, tengo esta duda y no lo consigo, ¿como puedo poner la barra de progreso para que se muestre en el proceso del envío o descarga de archivos ftp ? os muestro el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import ftplib
import os
 
# Datos FTP
ftp_servidor = 'ftp.nombre.net'
ftp_usuario  = 'remoto@nombre.net'  # usuario creado 
ftp_clave    = '11111111111'# contraseña del user creado para ftp 
ftp_raiz     = '/' # Carpeta del servidor donde queremos subir el fichero
 
# Datos del fichero a subir
fichero_origen = 'c:/prueba/datos.arj' # Ruta al fichero que vamos a subir
# La barra invertida da error 
fichero_destino = 'datos.arj' # Nombre que tendrá el fichero en el servidor
#
 
 
#import tkinter as tk
#from tkinter import ttk
#class Application(ttk.Frame):
 
    #def __init__(self, main_window):
     #   super().__init__(main_window)
      #  main_window.title("Enviando Información a Servidor Remoto")
## aqui quería poner progressbar pero no va muy bien...        
#        self.progressbar = ttk.Progressbar(self)
#       self.progressbar.place(x=30, y=60, width=200)        
#        self.place(width=500, height=20)
       # main_window.geometry("500x20")
#main_window = tk.Tk()
#app = Application(main_window)
#app.mainloop()
#
#
 
# Conectamos con el servidor
try:
	s = ftplib.FTP(ftp_servidor, ftp_usuario, ftp_clave)
	try:
		f = open(fichero_origen, 'rb')
		s.cwd(ftp_raiz)
		s.storbinary('STOR ' + fichero_destino, f)
		f.close()
		s.quit()
	except:
		print ("No se ha podido encontrar el fichero ") + fichero_origen
except:
	print ("No se ha podido conectar al servidor ") + ftp_servidor
 
 
 
import tkinter as tk
from tkinter import messagebox
ventana= tk.Tk()
ventana.withdraw()
messagebox.showinfo(message="Envío CORRECTO", title="Conexión Remota ftp ")
sys.exit()     En esta última línea me da error

Gracias de antemano.
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Barra de progreso en envio ftp

Publicado por tincopasan (1082 intervenciones) el 05/06/2019 19:03:58
más allá de la creación de la ventana y de la barra de progreso, que es fácil, tendrás que implementar colas y multihilo(queue
, threading) para que cumpla su función como tal, sino se ejecutará una primero y otra después
ejemplo de barra:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#-*- coding: utf -8 -*-
import tkinter as tk
import tkinter.ttk as ttk
 
 
class App(tk.Tk):
    def __init__(self):
        super().__init__()
        self.geometry("500x85")
        self.title("Enviando Información a Servidor Remoto")
        self.progressbar = ttk.Progressbar(self, length=480,
                                           orient=tk.HORIZONTAL)
        self.button = tk.Button(self, text="Iniciar")            #puse un botón para que el usuario elija
# cuando comenzar,claro que no es obligatorio
 
        self.progressbar.pack(padx=10, pady=10)
        self.button.pack(padx=10, pady=10)
if __name__ == "__main__":
    app = App()
    app.mainloop()
pero como dije, así es solo un adorno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 30
Ha disminuido su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

Barra de progreso en envio ftp

Publicado por Manuel (14 intervenciones) el 05/06/2019 19:14:46
Está genial, así puede servir....., aún me pierdo en el entorno.. :_)...

Solo falta que al iniciar (botón)..inicie ... jejejeje... y que la ventana se posiciones en el centro..

Mil gracias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar