Domanda

Ho scritto qualche codice Python per scaricare un'immagine utilizzando

urllib.urlopen().read()

e poi caricarlo su un sito FTP utilizzando

ftplib.FTP().storbinary()

ma sto avendo un problema. A volte il file di immagine è solo parzialmente caricato, in modo da ottenere immagini con la parte inferiore del 20% o giù di lì tagliato. Ho controllato la versione scaricata a livello locale e ho scaricato con successo l'intera immagine, il che mi porta a credere che si tratta di un problema con storbinary. Credo Sto aprendo e chiudendo tutti i file in modo corretto. Qualcuno ha qualche indizio sul motivo per cui sto ottenendo un caricamento parziale con storbinary?

Aggiornamento: Quando eseguo attraverso i comandi nella shell Python, il caricamento viene completata correttamente, non so il motivo per cui sarebbe stato diverso da quando viene eseguito come uno script ...

È stato utile?

Soluzione 2

E 'stato un po' da quando ho guardato questo codice, ma mi ricordo il punto cruciale era che non stavo chiudendo il file scaricato correttamente. Ho il codice di lavoro, però, quindi nel caso in cui è stato un problema con il caricamento e non il download, qui ci sono due frammenti:

Ecco il codice di lavoro per scaricare l'immagine:

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

Dove TheURL è l'URL del file che sto cercando di scaricare, FilenameOnly è solo la porzione nome del percorso, e LocalDir è la destinazione locale. Credo che il mio problema era che non stava chiamando LocalFile.close().

Ecco il codice di lavoro per caricare l'immagine:

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

UploadFile.close()
FTPServer.quit()

Il problema potrebbe anche essere stata che non mi stava chiamando FTPServer.quit()

Se qualcuno ha delle domande su questo codice, sarò felice di rispondere nei commenti; Mi sento veramente male che ho lasciato nessun Googler appeso!

Altri suggerimenti

Si scopre che non stavo chiudendo il file scaricato correttamente. Andiamo tutti finta questo non è mai successo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top