如果文件不存在,我想在 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)
但我想有一个最好的解决方案,因为只有当错误号是异常消息中的第一个单词时才有效。
先感谢您!