Python 检查ftplib响应代码
我有一个python应用程序正在访问ftp服务器。我想以类似于httplib2的方式捕捉几个错误案例:Python 检查ftplib响应代码,python,exception-handling,ftp,ftplib,Python,Exception Handling,Ftp,Ftplib,我有一个python应用程序正在访问ftp服务器。我想以类似于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 ftpli
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\u perm中是否存在类似的构造?我知道根据文档可以返回500-599的代码,但我在文档中没有看到关于如何访问该值的任何内容。我错过什么了吗 您可以使用
.args[0]
访问错误响应字符串。它包含的字符串类似于'550/没有这样的目录:没有这样的文件或目录'
要获取错误代码(仅前导三个字符),请使用.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()
这是可行的,但是没有用于代码的getter或只保存代码的对象的属性吗?@Brad,如果您使用的是
python2.7
,那么可以使用e.message[:3]
而不是e.args[0][:3]
。但它已经在Python3.x中消失了。没有其他财产。继承自ftplib.Error
,ftplib.Error
继承自Exception
。。不提供任何附加属性/属性。