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