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)
Partager