Python FTP下载550错误

标签 python ftp ftplib

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

ftplib.error_perm: 550

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

这是我的代码:

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

最佳答案

您的代码可能没问题。

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

此错误意味着“未采取请求的操作”。文件不可用(例如,找不到文件,无法访问)。',您可以发现 here on Wikipedia

如果您希望访问它,您应该联系系统管理员来纠正文件权限。

关于Python FTP下载550错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21659470/

相关文章:

python - 我们如何为 pandas 数据框的列标题和行标题着色?

python - python pandas groupby 中的 'AAPL' 和 ['AAPL' ] 有什么区别

ftp - 如何在计算机上设置 FTP 服务器?

Python流从FTP服务器到Flask服务器进行下载

python - FTPSHook Airflow(数据通道需要 522 SSL/TLS)

python - cElementtree 和 ElementTree 有什么区别?

python - Django 自定义用户管理员 change_password

java - FTP org.apache.commons.net.MalformedServerReplyException : Could not parse response code

java - 如何处理不完整的文件?获取异常

Python 3 ftplib错误 "Name or service not known"