Question

J'ai écrit un code python pour télécharger une image en utilisant

urllib.urlopen().read()

et puis le télécharger sur un site FTP en utilisant

ftplib.FTP().storbinary()

mais je vais avoir un problème. Parfois, le fichier image est partiellement téléchargée, si je reçois des images avec les 20% ou coupé en bas au large. J'ai vérifié la version téléchargée localement et j'ai téléchargé avec succès l'ensemble de l'image, ce qui me porte à croire qu'il ya un problème avec storbinary. Je crois que je suis ouverture et la fermeture de tous les fichiers correctement. Quelqu'un at-il des indices quant à la raison pour laquelle je reçois un téléchargement partiel avec storbinary?

Mise à jour: Quand je lance à travers les commandes dans le shell Python, le téléchargement se termine avec succès, je ne sais pas pourquoi ce serait différent de quand exécuter comme un script ...

Était-ce utile?

La solution 2

Il a été un moment que je regardais ce code, mais je me rappelle l'essentiel de c'était que je ne ferme pas correctement le fichier téléchargé. J'ai le code de travail, donc au cas où il avait un problème avec le téléchargement et non le téléchargement, voici deux extraits:

Voici le code de travail pour télécharger l'image:

socket = urllib.urlopen(TheURL)
FileContents = socket.read()
LocalFilename = LocalDir + FilenameOnly
LocalFile = open(LocalDir + FilenameOnly, 'wb')
LocalFile.write(FileContents)
LocalFile.close()

Où est l'URL TheURL du fichier que je suis en train de télécharger, est juste la FilenameOnly partie de nom du chemin, et est la destination LocalDir locale. Je crois que mon problème était que je n'appelle LocalFile.close().

Voici le code de travail pour télécharger l'image:

FTPServer = ftplib.FTP(FTPServer, FTPUsername, FTPPassword)
UploadFile = open(Filename, "rb")
FTPServer.cwd(FTPSubDirectory)

UploadFile.close()
FTPServer.quit()

Le problème aurait pu être aussi que je n'appelle FTPServer.quit()

Si quelqu'un a des questions sur ce code, je vais répondre avec plaisir dans les commentaires; Je me sens vraiment mal que je laissé de Googlers pendre!

Autres conseils

Il se trouve que je ne ferme pas correctement le fichier téléchargé. Nous allons tout faire semblant cela n'a jamais eu lieu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top