以下是我用來通過ftp下載的一些代碼。我試圖停止下載,然後繼續或重新下載。我試過ftp.abort(),但它只是掛起並返回超時。如何阻止ftp在python下載?
ftplib.error_proto: 421 Data timeout. Reconnect. Sorry.
場景: 的方案是,用戶會選擇要下載的文件,同時下載,用戶可以停止當前的下載和下載新的文件。如果用戶停止下載,代碼'if os.path.getsize(self.file_path)> 117625:'就是我的例子。它不是文件的完整大小。
謝謝。
from ftplib import FTP
class ftpness:
def __init__(self):
self.connect(myhost, myusername, mypassword)
def handleDownload(self,block):
self.f.write(block)
if os.path.getsize(self.file_path) >117625:
self.ftp.abort()
def connect(self,host, username, password):
self.ftp = FTP(host)
self.ftp.login(username, password)
self.get(self.file_path)
def get(self,filename):
self.f = open(filename, 'wb')
self.ftp.retrbinary('RETR ' + filename, self.handleDownload)
self.f.close()
self.ftp.close
a = ftpness()
我試過你的代碼,它掛起:) – unice 2012-04-09 13:45:19
「FTP.abort() - >中止正在進行的文件傳輸,使用它並不總是有效,但值得一試。「這是我們可以在文檔中找到的...如果超時錯誤消失,你能讓我知道嗎 – blackwind 2012-04-09 13:57:32
它仍然會引發超時錯誤。我已閱讀有關ftp.abort(),這就是爲什麼我想知道是否有其他方式停止下載沒有超時錯誤。 – unice 2012-04-09 14:04:01