如何捕获FTP错误?例如,socket.error: [Errno 10060]
我正在使用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模块时,还有哪些常见的错误是我应该注意捕捉的呢?
谢谢任何帮助或建议。
2 个回答
2
我遇到过类似的错误。我需要做的是在这一行捕捉到 socket.error
s.storbinary(stor, f)
还有在最开始连接的时候也要处理这个错误。
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
这段话的意思是,这个代码可以捕捉到所有的socket错误(不管它们的“错误号”是什么——错误号在10000以上的主要是Windows系统特有的,而在Unix系统上则会有很大的不同)。
你可以查看这个文档,里面有可能出现的其他异常;这些异常都在一个叫做ftplib.all_errors
的元组里(包括socket.error
和最后一个比较重要的IOError
),这样你就可以方便地用except ftplib.all_errors, e:
来捕捉它们。