Bonjour,
Je découvre Python depuis peu. Je développe un premier script qui télécharge puis après traitement re-dépose des fichiers sur un serveur FTP.
Ce script fonctionne relativement comme je souhaite. Cependant j'aimerais l'agrémenter d'un indicateur de téléchargement (ou dépôt) lors des transferts FTP : au niveau de la console, un simple affichage du pourcentage effectué (25 %, 50 %, ...)
Je me concentre donc pour l'instant sur la fonction suivante : downloadFile
Après de nombreuses recherche, j'ai cru comprendre (mais pas suffisamment) qu'il y aurait une piste avec l'option callback[, maxblocksize[, rest] de FTP.retrbinary(command, callback[, maxblocksize[, rest]]) probablement en corrélation avec la taille du fichier, récupérée par self.ftp.size(file)
Mais je ne vois pas comment l'utiliser...
Pourriez-vous m'aider car je sèche vraiment depuis plusieurs jours ?
Merci d'avance,
Nicolas.

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
 
    def downloadFile(self, local_dir='.', remote_dir='.'):
 
        #Récupération du répertoire courant
        root=os.getcwd()
 
        #Changement de repertoire courant pour atteindre le répertoire cible
        os.chdir(local_dir)
 
        #Changement du répertoire distant sur le serveur ftp
        self.ftp.cwd(remote_dir)
 
        #Téléchargement du fichier
        try:
            #Test si file est un fichier
            self.ftp.size(file)
            print ('Telechargement du fichier : '+file)
            self.ftp.retrbinary('RETR '+file, open(file, 'wb').write)
            print ('Download de %s ok' %file)
        except:
            print ('Fichier '+file+' indisponible') 
 
        #Retour vers le répertoire local initial 
        os.chdir(root)