Salut à tous les pythoniein,

Bon moi autant vous le dire tous de suite, je suis pas doué en prog, mais là j'ai pas le choix, faut que j'y arrive

Bon voilà en m'inspirant du code trouvé ici pour télécharger l'arbo d'un dossier par FTP, j'ai pour but de le transformer en interface graphique, pour que l'utilisateur entre son login et mot de passe FTP et que ensuite celà télécharge automatiquement d'un point préci vers un autre.

Celà fonctionne sauf que dans ma pitite téte de programmeur du dimanche, je veux que dans le widget Label s'affiche de façon dynamique le fichier en cours de copie.

voici mon code enfin presque :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
# -*- coding: Latin-1 -*-
 
import os
import ftplib
from Tkinter import *
 
global textv
textv='coucou'
 
def download():
    pathsrc='./programmation'
    pathdst='F:\\programmation\\python\\ftp\\telechargement'
    ftp=ftplib.FTP('')
    ftp.connect('192.168.1.2')
    user=str(entr1.get())
    passwd=str(entr2.get())
    ftp.login(user,passwd)
    lenpathsrc=len(pathsrc)
    def _download(pathsrc):
        l=ftp.nlst(pathsrc)
        for i in l:
            try:
                ftp.size(i)
                textv=i
                progress.configure(text=textv)
                ftp.retrbinary('RETR '+i, open(pathdst+os.sep+i[lenpathsrc:], 'wb').write)
            except:
                try: os.makedirs(pathdst+os.sep+os.path.dirname(i[lenpathsrc:]))
                except: pass
                _download(i)
    _download(pathsrc)
    ftp.quit()
    progress.configure(text='Opération terminée...')
 
#######################
# interface graphique #
#######################
 
fen1=Tk()
txt1=Label(fen1, text='    Login    :')
txt2=Label(fen1, text='Mot de passe :')
entr1=Entry(fen1)
entr2=Entry(fen1)
bout1=Button(fen1,text='telecharger',command=download)
bout2=Button(fen1,text='Quiter',command=fen1.destroy)
progress=Label(fen1,text=textv,width="50")
txt1.grid(row=0,column=0)
txt2.grid(row=1,column=0)
entr1.grid(row=0,column=1)
entr2.grid(row=1,column=1)
bout1.grid(row=2,column=0)
bout2.grid(row=2,column=1)
progress.grid(row=3,column=0)
 
fen1.mainloop()
Le problème est le suivant si la ligne juste avant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
progress.configure(text=textv)
je rajoute

print textv, celà fonctionne mon widget Label change de manière dynamique mais s'affiche aussi sous console ce qui est normal.

Moi je veux juste que celà s'affiche dans le Widget, mais si j'enlève la commande print le Widget Label ne change pas sauf à la fin de la fonction pour affiché opération terminé.

J'ai beau chercher je ne voix vraiment pas .

Si quelqu'un peut m'aider merci d'avance