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 

このような aa 構造は ftplib.err_perm に存在しますか? ドキュメントによると 500-599 のコードを返す可能性があることは知っていますが、その値にアクセスする方法についてドキュメントには何も表示されません。私は何か見落としてますか?

4

1 に答える 1

2

を使用して、エラー応答文字列にアクセスできます<exception_obj>.args[0]。のような文字列が含まれています'550 /no-such-dir: No such file or directory'

エラー コード (先頭の 3 文字のみ) を取得するには、 を使用します<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 に答える