知道FTP是否仍与ftplib连接

时间:2016-04-26 17:01:22

标签: python ftp ftplib

我想知道是否有一种简单的方法可以知道使用ftplib与FTP服务器的连接是否仍然有效。

因此,如果您有这样的有效连接:

import ftplib
ftp = ftplib.FTP("ftp.myserver.com", "admin", "pass123")

是否有类似下面的伪代码可以查询以检查连接是否仍处于活动状态?

if ftp.is_connected() == True:
    print "Connection still active"
else:
    print "Disconnected"

1 个答案:

答案 0 :(得分:0)

您可以尝试从服务器检索某些内容,捕获任何异常,并根据该内容返回它是否已连接。

例如:

def is_connected(ftp_conn):
    try:
        ftp_conn.retrlines('LIST')
    except (socket.timeout, OSError):
        return False
    return True

这个简单的例子将打印' LIST'结果为stdout,你可以通过将自己的回调放入retrlines method

来改变它

(确保在初始FTP对象构造中设置超时,因为默认值为None。)

ftp = ftplib.FTP("ftp.gnu.org", timeout=5, user='anonymous', passwd='')