Как бы я обработал ошибку 550 Не удалось изменить ошибку каталога с FTPLIB? - PullRequest
0 голосов
/ 07 июня 2018

Привет всем, быстрый вопрос, я создал простой скрипт на Python для удаленного входа на FTP-сервер, который позволяет пользователям изменять каталоги, печатая указанный путь, и получать список файлов, и вводить имя файлов, которые онихочу скачать.По сути, это простой скрипт навигации / загрузки, который я сделал как проект, чтобы узнать больше о некоторых функциях библиотек, связанных с FTP.Я знаю, что, скорее всего, есть исправление для того, о чем я говорю, однако мне интересно, есть ли способ попробовать / исключить ошибку 550 или обработать его так, чтобы пользователь вводил имя каталога без сбоевпрограмма.это то, что я имею до сих пор, и я в основном задаюсь вопросом, куда бы я добавил попытку, кроме как и как бы я ее реализовал?Кстати, вот фактическая ошибка от программы после попытки изменить каталог, который не существует: ftplib.error_perm: 550 Не удалось изменить каталог.Обратите внимание, что я ищу способ обойти это без сбоев программы!спасибо!

def FTPRETR(ftp):
    currentdirectory = ftp.pwd()
    print(currentdirectory)


    print('current files in the directory.')
    print('-----------------------------------')
    print('                ')
    files = ftp.nlst(currentdirectory)
    print(files)
    print('                ')
    print('-----------------------------------')

    keepgoing = 1

  while keepgoing !=0:
      filename = str(input('please enter the name of the file with its 
       extension to be downloaded,Press C to change directory,'
                         'press L to list all of the contents'
                         '  or press Q to quit')).lower()




       if str(filename) == 'q':
           keepgoing = keepgoing -1

       elif str(filename) == 'c':
           cwd = str(input('please enter the directory you wish to change 
                  to.'))
            ftp.cwd(cwd)
            workingdir = ftp.pwd()
            print(workingdir)
       elif str(filename)== 'l':
            workingdirnlist = ftp.pwd()
            contents = ftp.nlst(workingdirnlist)
            print(contents)


       else:
            gfile = open(filename, 'wb')
            ftp.retrbinary('RETR %s' % filename, gfile.write)
            gfile.close()
...