Python:ftp文件卡在缓冲区?

时间:2012-07-25 15:42:54

标签: python ftp

使用此方法下载ftplib文件时:

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的单个文件并仍然使用回调函数?

1 个答案:

答案 0 :(得分:0)

正如Wooble在评论中指出的那样,我没有把这个文件像个白痴一样关闭。它解决了这个问题。