【问题标题】:Partial Upload With storbinary in python在 python 中使用 storbinary 部分上传
【发布时间】:2009-03-21 22:02:27
【问题描述】:

我已经编写了一些 python 代码来使用

下载图像
urllib.urlopen().read()

然后使用

将其上传到 FTP 站点
ftplib.FTP().storbinary()

但我遇到了问题。有时图像文件只是部分上传,所以我得到的图像底部 20% 左右被截断。我检查了本地下载的版本,并且已经成功下载了整个镜像,这让我相信这是 storbinary 的问题。我相信我正在正确打开和关闭所有文件。有人知道为什么我会使用 storbinary 进行部分上传吗?

更新: 当我在Python shell中运行命令时,上传成功完成,我不知道为什么它会与作为脚本运行时不同......

【问题讨论】:

    标签: python ftp ftplib


    【解决方案1】:

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

    【讨论】:

    • 如果你能说出你是如何实际解决问题的,那将会很有帮助。
    • 确实如此。它可以防止人们向这个问题发送垃圾邮件以寻找答案。
    • 糟糕,抱歉,我认为这是不言自明的。我会提出一个更详细的答案并接受它。
    【解决方案2】:

    我看了这段代码已经有一段时间了,但我记得关键是我没有正确关闭下载的文件。不过我有工作代码,所以以防万一是上传问题而不是下载问题,这里有两个 sn-ps:

    这是下载图像的工作代码:

    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()

    如果有人对此代码有任何疑问,我会很乐意在 cmets 中回复;让任何 Google 员工悬而未决,我感到非常难过!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-06
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      相关资源
      最近更新 更多