3

ftplibモジュールを使用してファイルをアップロードしています:

    files = [ a.txt , b.txt , c.txt ]

    s = ftplib.FTP(ftp_server , ftp_user , ftp_pw) # Connect to FTP
    for i in range(len(files)):
            f = open(files[i], 'rb')
            stor = 'stor ' + files[i]
            s.storbinary(stor, f)
            f.close() # close file
    s.quit() # close ftp

次のエラーをキャッチするにはどうすればよいですか?

socket.error: [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

また、FTPモジュールを使用するときによくある他のエラーのうち、キャッチする必要があるものは何ですか?

ヘルプやポインタをありがとう。

4

2 に答える 2

3
import socket

try:
    s = ftplib.FTP(ftp_server , ftp_user , ftp_pw) # Connect to FTP
except socket.error, e:
    print "do something with %s" % e

これにより、すべてのソケットエラーがキャッチされます(「errno」が何であれ、10000以上のものはWindows固有のものですが、Unixでは大きく異なります)。

発生する可能性のあるその他の例外については、ドキュメントを参照してください。それらはすべてタプルに含まれているのでftplib.all_errorssocket.errorそのままで最後の大物ですIOError)、ですべてを手軽にキャッチできますexcept ftplib.all_errors, e:

于 2010-05-13T02:01:43.660 に答える
2

同様のエラーがありました。代わりに私がしなければならなかったのは、その行で socket.error をキャッチすることです

s.storbinary(stor, f)

初期接続も同様です。

于 2010-11-03T18:45:04.567 に答える