FTP 服务器在下载完成前断开连接
FTP server breaks connection before download is complete
有时,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.'
您可以在 FTP
构造函数中指定一个 timeout
参数并将其设置为 0 或某个非常大的值,例如 sys.maxint。
class ftplib.FTP([host[, user[, passwd[, acct[, timeout]]]]])
此外,您可以打开调试以查看幕后发生的情况。
ftp = ftplib.FTP(site, user, pw, timeout=0)
ftp.set_debuglevel(2)
希望对您有所帮助。
有时,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.'
您可以在 FTP
构造函数中指定一个 timeout
参数并将其设置为 0 或某个非常大的值,例如 sys.maxint。
class ftplib.FTP([host[, user[, passwd[, acct[, timeout]]]]])
此外,您可以打开调试以查看幕后发生的情况。
ftp = ftplib.FTP(site, user, pw, timeout=0)
ftp.set_debuglevel(2)
希望对您有所帮助。