首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python FTP下载550错误

Python FTP下载550错误
EN

Stack Overflow用户
提问于 2014-02-09 13:16:11
回答 1查看 8.8K关注 0票数 2

我编写了一个ftp爬虫来下载特定的文件。它一直工作到找到要下载的特定文件,然后抛出以下错误:

代码语言:javascript
复制
ftplib.error_perm: 550

该文件存在于我的下载文件夹中,但文件大小为0 kb。我需要转换一些东西才能下载吗?我可以访问ftp手册并下载文件,没有任何问题,所以不要认为它是登录部分(除非有不同的登录方式?)

这是我的密码:

代码语言:javascript
复制
import ftplib
import re
import os


class Reader:

def __init__(self):

    self.data = ""

def __call__(self,s):

    self.data += s + "\n"

ftp = ftplib.FTP("my_ftp_server")

ftp.login()

r = Reader()

ftp.dir(r)

def get_file_list(folder):



    r = Reader()

    ftp.dir(folder, r)

    print ("Reading folder",folder)


    global tpe
    global name
    for l in r.data.split("\n"):

        if len(l) > 0:
            vars = re.split("[ ]*", l)
            tpe = vars[2]
            name = vars[3]
        if tpe == "<DIR>":

            get_file_list( folder + "/" + name )
        else:
            print (folder + name)
        for name in folder:
            if vars[3].endswith(('501.zip','551.zip')):
                if os.path.exists('C:\\download\\' + vars[3]) == False:
                    fhandle = open(os.path.join('C:\\download\\', vars[3]), 'wb')
                    print ('Getting ' + vars[3])
                    ftp.retrbinary('RETR ' + vars[3], fhandle.write)
                    fhandle.close()
                elif os.path.exists(('C:\\download\\' + vars[3])) == True:
                    print ('File ', vars[3], ' Already Exists, Skipping Download')

print("-"*30)
print ("Fetching folders...")

get_file_list("")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-10 02:22:16

你的代码可能没问题。

FTP错误550是由服务器端的权限问题引起的。

此错误意味着“未采取所请求的操作。文件不可用(例如,未找到文件,没有访问)。”,您可以找到在维基百科上

如果您希望能够访问它,则应该与sysadmin联系,以纠正文件权限。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21659470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档