1
當我下載使用這種方法FTPLIB文件:Python:ftp文件卡在緩衝區中?
ftp = ftplib.FTP()
ftp.connect("host", "port")
ftp.login("user", "pwd")
size = ftp.size('locked')
def handleDownload(block):
f.write(block)
pbar.update(pbar.currval+len(block))
f = open("locked", "wb")
pbar=ProgressBar(widgets=[FileTransferSpeed(), Bar('>'), ' ', ETA(), ' ', ReverseBar('<'), Percentage()], maxval=size).start()
ftp.retrbinary("RETR locked",handleDownload, 1024)
pbar.finish()
如果文件小於1MB的文件將被卡在緩衝區中,直到我下載了足夠的數據另一個文件來推動它。我試圖通過將ftp.size(filename)除以20來製作一個動態緩衝區,但仍然發生同樣的情況。那麼如何製作它,以便我可以下載小於1 MB的單個文件並仍然使用回調函數?
我認爲這很可能是因爲你永遠不會關閉文件,而不是被緩衝的ftp。 – geoffspear 2012-07-25 16:29:00
你有一個有效的點,我會嘗試。 – 2012-07-25 16:34:56