Python FTP download 550 error

佐手、 提交于 2021-02-19 07:26:51

问题


I've written an ftp crawler to download specific files. It works up until it finds the specific file it wants to download, and then it throws this error:

ftplib.error_perm: 550

The file exists in my download folder, but the size of the file is 0 kb. Do I need to convert something in order to get it to download?. I can access the ftp manual and download the file without any problems, so don't think it's the login part (unless there's different ways of logging in??)

Here's my code:

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

回答1:


Your code is probably OK.

FTP error 550 is caused by a permission issue on the server side.

This error means 'Requested action not taken. File unavailable (e.g., file not found, no access).', as you can find out here on Wikipedia

If you expect to have access to it, you should contact the sysadmin to rectify the file permission.



来源:https://stackoverflow.com/questions/21659470/python-ftp-download-550-error

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!