如何处理错误550无法使用FTPLIB更改目录错误?

时间:2018-06-07 13:57:05

标签: python error-handling ftp crash ftplib

大家好快问,我创建了一个简单的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()

0 个答案:

没有答案