Частичная загрузка с помощью storbinary на python
Вопрос
Я написал некоторый код на Python для загрузки изображения с помощью
urllib.urlopen().read()
а затем загрузите его на FTP-сайт, используя
ftplib.FTP().storbinary()
но у меня возникла проблема.Иногда файл изображения загружается только частично, поэтому я получаю изображения с обрезанными нижними 20% или около того.Я проверил локально загруженную версию, и я успешно загрузил все изображение целиком, что наводит меня на мысль, что это проблема со storbinary.Я считаю, что я правильно открываю и закрываю все файлы.У кого-нибудь есть какие-либо подсказки относительно того, почему я получаю частичную загрузку с помощью storbinary?
Обновить: Когда я запускаю команды в оболочке Python, загрузка завершается успешно, я не знаю, почему это будет отличаться от запуска в виде скрипта...
Решение 2
Прошло некоторое время с тех пор, как я просматривал этот код, но я помню, что суть его заключалась в том, что я неправильно закрывал загруженный файл.Однако у меня есть рабочий код, так что на всякий случай, если это была проблема с загрузкой, а не с загрузкой, вот оба фрагмента:
Вот рабочий код для загрузки изображения:
socket = urllib.urlopen(TheURL)
FileContents = socket.read()
LocalFilename = LocalDir + FilenameOnly
LocalFile = open(LocalDir + FilenameOnly, 'wb')
LocalFile.write(FileContents)
LocalFile.close()
Где TheURL
это URL-адрес файла, который я пытаюсь загрузить, FilenameOnly
это просто часть пути к имени файла, и LocalDir
является местным пунктом назначения. Я думаю, моя проблема заключалась в том, что я не звонил LocalFile.close()
.
Вот рабочий код для загрузки изображения:
FTPServer = ftplib.FTP(FTPServer, FTPUsername, FTPPassword)
UploadFile = open(Filename, "rb")
FTPServer.cwd(FTPSubDirectory)
UploadFile.close()
FTPServer.quit()
Проблема также могла заключаться в том, что я не звонил FTPServer.quit()
Если у кого-то есть какие-либо вопросы по поводу этого кода, я с радостью отвечу в комментариях;Мне очень жаль, что я оставил кого-то из гуглеров без внимания!
Другие советы
Оказывается, я неправильно закрывал загруженный файл.Давайте все притворимся, что этого никогда не было.