Frage

Ich habe einige Python-Code geschrieben, ein Bild zum Download mit

urllib.urlopen().read()

und dann laden Sie sie auf eine FTP-Site mit

ftplib.FTP().storbinary()

, aber ich habe ein Problem. Manchmal wird die Bilddatei nur teilweise hochgeladen, damit ich Bilder mit dem unteren 20% oder so abgeschnitten. Ich habe die lokal heruntergeladenen Version überprüft und ich habe erfolgreich das gesamte Bild heruntergeladen, die mich führt zu glauben, dass es ein Problem mit storbinary ist. Ich glaube, ich bin zu öffnen und korrekt alle Dateien zu schließen. Hat jemand irgendwelche Hinweise haben, warum ich einen Teil Upload mit storbinary bekommen?

Update: Wenn ich durch die Befehle in der Python-Shell ausführen, schließt das Upload erfolgreich, weiß ich nicht, warum sollte es anders sein, wenn sie als Skript ausführen ...

War es hilfreich?

Lösung 2

Es ist schon eine Weile her, seit ich in diesem Code gesucht, aber ich erinnere mich der Knackpunkt davon war, dass ich nicht die heruntergeladene Datei korrekt geschlossen wurde. Ich habe den Arbeitscode obwohl, so für alle Fälle war es ein Problem mit dem Upload und nicht dem Download sind hier beiden Schnipsel:

Hier ist der Arbeits Code, um das Bild zum Download:

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

Wo TheURL die URL der Datei zum Download Ich versuche, FilenameOnly ist nur der Dateiname Teil des Weges, und LocalDir ist das lokale Ziel. Ich glaube, mein Problem war, dass ich nicht anrief LocalFile.close().

Hier ist der Arbeits Code, um das Bild zu laden:

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

UploadFile.close()
FTPServer.quit()

Das Problem auch haben könnte, dass ich nicht FTPServer.quit() rufe

Wenn jemand Fragen zu diesem Code hat, werde ich glücklich in den Kommentaren antworten; Ich fühle mich wirklich schlecht, dass ich alle Googler hängen gelassen!

Andere Tipps

Es stellt sich heraus, dass ich nicht korrekt auf die heruntergeladene Datei zu schließen. Lassen Sie uns alle so tun dies nie passiert ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top