Bonjour à tous,
Je souhaite intégrer au code ci dessous une barre de progression me permettant de savoir l'état d'avancement de mes copies de fichiers.
Voici le code :
J'ai déjà inséré une barre de progression mais lors d'un transfert FTP via ce code et l'aide précieuse de ce forum
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 # -*- coding: cp1252 -*- import os import shutil root_src_dir = 'F:\PATH_SOURCE' root_dst_dir = 'D:\PATH_DESTINATION' for src_dir, dirs, files in os.walk(root_src_dir): dst_dir = src_dir.replace(root_src_dir, root_dst_dir) if not os.path.exists(dst_dir): os.mkdir(dst_dir) for file_ in files: src_file = os.path.join(src_dir, file_) dst_file = os.path.join(dst_dir, file_) if os.path.exists(dst_file): os.remove(dst_file) shutil.copyfile(src_file, dst_file) print 'Le fichier %s à bien été copié !' %(file_):
Dans ce code lorsque j'envoyais mon fichier sur le FTP je faisais appel à ma classe FtpUploadTracker: ftp.storbinary('STOR ' + fichier, f, 1024, uploadTracker.handle). Je pouvais récupérer via block la valeur des données envoyées et donc savoir ou j'en étais dans mon upload.
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
56
57
58
59 # -*- coding: utf-8 -*- import os import ftplib import sys import time class FtpUploadTracker: def __init__(self, totalSize): self.totalSize = totalSize self.sizeWritten = 0 self.RefValue=0 self.i=0 self.p=0 self.fin='' #print '[', def handle(self, block): self.sizeWritten += len(block) if self.sizeWritten < self.totalSize: if round((float(self.sizeWritten)/float(self.totalSize))*100) - self.RefValue==1: i=self.i if round((float(self.sizeWritten)/float(self.totalSize))*100)==100: fin = "Upload terminé !" self.p=int((float(self.sizeWritten)/float(self.totalSize))*100) ligne = '[' + '#'*i + ' '*(20-i) + '] %d%% %s' % (self.p, self.fin) sys.stdout.write('\r%s' % ligne) sys.stdout.flush() self.i += 1 toto.write(str(i)) self.RefValue=self.RefValue+5 else: sys.stdout.write('\r\n') sys.stdout.flush() # Connect ftp = ftplib.FTP('hôte', 'login', 'pass') # file to send fichier = 'test.zip' print 'File Name: '+fichier totalSize = os.path.getsize(fichier) print 'Size of file: '+str(totalSize/(1024*1024))+'Mo' f = open(fichier, 'rb') """ Class FtpUploadTracker """ uploadTracker = FtpUploadTracker(totalSize) # Send the file ftp.storbinary('STOR ' + fichier, f, 1024, uploadTracker.handle) # Close file and FTP f.close() ftp.quit()
Je souhaite savoir s'il est possible de faire la même chose mais avec shutil.copyfile ?
Merci d'avance pour votre aide.
Partager