1

我有一个正在访问 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 中是否存在这样的 aa 构造?我知道根据文档可以返回 500-599 的代码,但我在文档中没有看到有关如何访问该值的任何内容。我错过了什么?

4

1 回答 1

2

您可以使用 访问错误响应字符串<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()
于 2013-10-23T15:08:46.440 回答