这是我用来通过 ftp 下载的一些代码。我试图停止下载然后继续或之后重新下载。我试过 ftp.abort() 但它只会挂起并返回超时。
ftplib.error_proto: 421 Data timeout. Reconnect. Sorry.
SCENARIO: 场景是用户选择要下载的文件,在下载时,用户可以停止当前下载并下载一个新文件。如果用户停止下载,代码 '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()