我有一个访问ftp服务器的python应用程序。我想以类似于httplib2的方式捕获几个错误情况:
try:
urllib2.urlopen("http://google.com")
except urllib2.HTTPError, e:
if e.code == 304:
#do 304 stuff
if e.code == 404:
#do 404 stuff
else:
pass
ftplib.err_perm中是否存在这样的结构?我知道可以根据文档返回500-599的代码,但我在文档中没有看到有关如何访问该值的任何内容。我错过了什么?
答案 0 :(得分:1)
您可以使用<exception_obj>.args[0]
访问错误响应字符串。它包含'550 /no-such-dir: No such file or directory'
等字符串。
要获取错误代码(仅前导三个字符),请使用<exception_obj>.args[0][:3]
。
例如:
import ftplib
ftp = ftplib.FTP('ftp.hq.nasa.gov')
ftp.login('anonymous', 'user@example.com')
try:
ftp.cwd('/no-such-dir')
except ftplib.error_perm as e:
print('Error {}'.format(e.args[0][:3]))
finally:
ftp.quit()