有时,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.'
答案 0 :(得分:0)
您可以在timeout
构造函数中指定FTP
参数,并将其设置为0或非常大的值,例如 sys.maxint 。
class ftplib.FTP([host[, user[, passwd[, acct[, timeout]]]]])
此外,您可以打开调试以查看幕后发生的事情。
ftp = ftplib.FTP(site, user, pw, timeout=0)
ftp.set_debuglevel(2)
希望这有帮助。