2013-07-09 113 views
-1

我想在连接丢失时在python中实现FTP重新连接。 每当连接中断时,我将按如下方式调用Connect()函数。 为了模拟断开连接,我调用了ftp.logout(),然后试图下载一个会引发异常的文件,在我调用Connect()函数的异常处理程序中。FTP重新打开连接

ftp = FTP("hostname") 
def Connect(): 
    print('Calling Connect') 
    ftp.login("user","password") 

我遇到了下面的异常 AttributeError的( “ 'NoneType' 对象有没有属性 'sendall'”)

可有人扔一些轻的呢?

+0

我认为你需要重新打开连接到主机 - 当你退出,你不”只是注销用户,你也“失去了主机”。 – Floris

+1

这与'sendall'有关吗?请张贴'try'块。 – thegrinner

+2

你还没有发布抛出'AttributeError'的代码。除非你展示*全部*相关资料来源和* full * stacktrace,否则我们很难为你做。 –

回答

1

我怀疑你可以通过重新初始化您connect()函数内部的ftp变量解决的问题:

def Connect(): 
    ftp = FTP("hostname") 
    print('Calling Connect') 
    ftp.login("user","password") 
+0

我在其他函数中使用ftp变量,所以我希望它是全局的。 – BJC

+0

'ftp'是全局的 - 但你需要在'Connect()'函数中重新初始化它。 – Floris

相关问题