如果文件不存在,我想上傳一個ftp站點上的文件。這是一個更復雜的應用程序的任務,但在這種情況下並不重要。 我的想法是檢查文件是否存在與FTP.size(filename)
方法,如果錯誤是550(系統找不到指定的文件)上載文件。ftplib,如何管理沒有errno屬性的異常?
我(不工作)代碼:
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)
但我想有一個最好的解決方案,因爲這隻有在錯誤號是異常消息中的第一個字的情況下才起作用。
預先感謝您!
這段代碼在我的電腦上工作得很好。你確定你使用的是正確版本的Python嗎?我跑2.7。 – drRoflol