2013-07-09 144 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

相關問題