J'utilise ce code pour télécharger myfile.txt de ma machine Windows sur un serveur ftp. Après le chargement, le script supprime le fichier sur ma machine locale (je ne le supprime pas sur le ftp).ftplib STOR de Python fiable?
try:
ftp = FTP(ftp.host.com)
ftp.login(your_username, your_password)
file = open(myfile.txt, "rb")
ftp.storbinary('STOR myfile.txt', file)
print 'STORing File now...'
ftp.quit()
file.close()
subprocess.Popen('del myfile.txt', shell=True)
print 'File deleted'
except all_errors:
print 'An error occured'
Ce code s'exécute, mais ce n'est pas fiable! A chaque ~ 10ème téléchargement mon script se bloque pendant le stockage du fichier.
print 'STORing File now...' # So I just get 'STORING File now...'
Le fichier n'est pas grand et devrait être mise en ligne en quelques secondes, mais je dois souvent attendre une heure ou deux et alors seulement l'exception est levée:
print 'An error occured'
Si Faisaient exception jeté "plus tôt" ce serait bien que je puisse simplement redémarrer le téléchargement (par exemple dans une boucle while). Parce que j'ai besoin de ce fichier pour être téléchargé dès que possible, je dois accélérer le téléchargement du fichier (je ne veux pas attendre si l'exception est levée)
Deuxième problème: Parfois, cela arrive: Après le fichier a été téléchargé avec succès, le script ne parvient pas à supprimer le fichier sur ma machine locale car 'un autre processus y accède déjà' < - Je pense que ftplib n'a pas 'libéré' le fichier. Que puis-je faire pour éviter cela?
Je suis à la recherche d'une meilleure solution de fileupload simple/fiable. Quelqu'un a une idée? Merci!
Dois-je faire le téléchargement de tout le fichier avec Windows ftp.exe (appelé avec sous-processus)? – creativz