ファイルが存在しない場合、ftp サイトにファイルをアップロードしたいと考えています。これはより複雑なアプリケーションのタスクですが、この場合は重要ではありません。私の考えは、FTP.size(filename)
メソッドでファイルが存在するかどうかを確認し、エラーが 550 (指定されたファイルが見つかりません) の場合はファイルをアップロードすることです。
私の(動作していない)コード:
from ftplib import *
ftp = FTP("ftp.test.com", "user", "password")
try:
ftp.size("123.zip")
except ftplib.all_errors, e:
if e.errno == 550:
print "UPLOAD"
else:
print str(e)
返されるエラーは
Traceback (most recent call last):
File "<pyshell#106>", line 4, in <module>
if e.errno == 550:
AttributeError: 'error_perm' object has no attribute 'errno'
または一時的なエラーが発生した場合:
AttributeError: 'error_temp' object has no attribute 'errno'
リターンコードを管理するために私が見つけた唯一の解決策はこれでした:
except ftplib.all_errors, e:
if str(e.args[0]).split(" ", 1)[0] == "550":
print "UPLOAD"
else:
print str(e)
しかし、これはエラー番号が例外メッセージの最初の単語である場合にのみ機能するため、最善の解決策があると思います。
前もって感謝します!