problème copie de fichiers sur cle usb
Bonjour à tous
Voila mon sujet
J'ai créé un petit programme dans lequel j'effectue une sauvegarde des fichiers utilisés
fichiers de base de données, de photos, texte .....etc
C'est un programme simple pour des gens peu à très peu habituer à l'informatique.
Ce programme de sauvegarde ouvre un fenêtre sur laquelle apparait un bouton 'Insérer la clé usb'
on click dessus on insère le clé le programme gére l'insertion de la clé et donne son nom de lecteur
puis on click sur le bouton 'Démarrer la sauvegarde'
La sauvegarde s'effectue SAUF qu'elle plante car dans les noms de fichiers et de répertoire il y a des accents
c'est donc un problème de codage
Pour faire plusieurs manipulations sans retirer la clé puis la remettre
j'ai modifier le programme pour que la sauvegarde démarre toute seule et la miracle tous les fichiers et répertoire sont copier
à merveille sans problème d'accent ni autre
et si j' exécute le programme comme il doit l'être en réalité problème de plantage à cause des accents.
Pourquoi ?
voici le bout de code qui gère la sauvegarde
Code:
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
| # La fonction onSvg est lancée lorsque l'utilisateur clikc sur le bouton 'Démarrer la Sauvegarde'
def onSvg(self, evt):
self.pathdest = self.pathdest + ':\\' + self.path[self.path.find(self.path_courrant):]
self.If_Exist_Dir(self.pathdest)
self.Files_Count(self.path_def)
self.gauge.SetRange(self.count_files)
self.Svg_Files(self.path_def)
def Svg_Files(self, path):
pt = path
for i in range (len(os.listdir(pt))):
pth = pt + '\\' + os.listdir(pt)[i]
if os.path.isfile(pth):
print 'c est un fichier =', os.listdir(pt)[i]
ptdest = self.pathdest + '\\' + pt[(pt.find(self.path_courrant) + \
len(self.path_courrant)):] + '\\' + \
os.listdir(pt)[i]
self.Copy_Files(pth, ptdest)
elif os.path.isdir(pth):
ptt = pt + '\\' + os.listdir(pt)[i]
self.If_Exist_Dir(self.pathdest + pt[(pt.find(self.path_courrant) + \
len(self.path_courrant)):] + '\\' + \
os.listdir(pt)[i].decode('cp1252'))
self.Svg_Files(ptt)
return
def Copy_Files(self, pts, ptd):
self.copy_files += 1
self.gauge.SetValue(self.copy_files)
try:
shutil.copy(pts, ptd)
except shutil.Error, e:
print e
except IOError as e:
print e.strerror
def If_Exist_Dir(self, pt):
encoder = locale.getpreferredencoding()
if os.path.exists(pt) == False:
os.mkdir(pt.encode('ISO-8859-1')) |
Si quelqu'un a une idée elle serait la bien venu
Si le code est un peu bordélique c'est que j'ai fait tellement de ma,ip que j'ai du oublier de retirer le morceau en trop
Merci d'avance à tous