题
我已经写了一些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挂!
其他提示
原来我没有正确关闭下载的文件。让我们都假装这从来没有发生过。
不隶属于 StackOverflow