FTP服务器在下载完成之前中断连接

时间:2015-02-04 19:39:27

标签: python ftplib

有时,FTP服务器会在完全下载文件之前关闭连接。

这是我的代码:

ftp = ftplib.FTP(site)
ftp.login(user, pw)
ftp.cwd(dir)
remotefiles = ftp.nlst()
for file in remotefiles:
    if fnmatch.fnmatch(file, match_text):
        if os.path.exists(file):
            if True: print file, 'already fetched'
        else:
            if True: print 'Downloading', file
            local = open(file, 'wb')                
            try:            
                ftp.retrbinary('RETR ' + file, local.write)
            finally:
                local.close()                       
            if True: print 'Download done.' 

1 个答案:

答案 0 :(得分:0)

您可以在timeout构造函数中指定FTP参数,并将其设置为0或非常大的值,例如 sys.maxint

  

class ftplib.FTP([host[, user[, passwd[, acct[, timeout]]]]])

enter image description here

此外,您可以打开调试以查看幕后发生的事情。

ftp = ftplib.FTP(site, user, pw, timeout=0)
ftp.set_debuglevel(2)

希望这有帮助。