我已经写了一些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()

如果任何人有这个代码的任何问题,我会高兴地在评论进行回复;我感觉非常糟糕,我留下任何的Google挂!

其他提示

原来我没有正确关闭下载的文件。让我们都假装这从来没有发生过。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top