Python 了解FTP是否仍与ftplib连接

Python 了解FTP是否仍与ftplib连接,python,ftp,ftplib,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 "Disc

我想知道是否有一种简单的方法可以使用ftplib知道到FTP服务器的连接是否仍然处于活动状态

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

import ftplib
ftp = ftplib.FTP("ftp.myserver.com", "admin", "pass123")
是否可以查询以下伪代码来检查连接是否仍然处于活动状态

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

您可以尝试从服务器检索某些内容,捕获任何异常,并基于此返回是否已连接

例如:

def is_connected(ftp_conn):
    try:
        ftp_conn.retrlines('LIST')
    except (socket.timeout, OSError):
        return False
    return True
这个简单的示例将把“列表”结果打印到stdout,您可以通过将自己的回调放入


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


哦,对了,这其实是一个非常简单的方法。谢谢
ftp = ftplib.FTP("ftp.gnu.org", timeout=5, user='anonymous', passwd='')