Python ftplib-retrbinary失败,零字节文件超时

Python ftplib-retrbinary失败,零字节文件超时,python,ftplib,Python,Ftplib,使用Python2.6并以被动模式从FTP服务器下载文件,我发现如果源文件为空(0字节),retrbinary将失败并超时。这是一个bug还是我缺少一个配置选项 ftp.retrbinary('RETR digital.conf', open('digital.conf','wb').write) Downloading digital.conf Traceback (most recent call last): File "<stdin>", line 1, in <

使用Python2.6并以被动模式从FTP服务器下载文件,我发现如果源文件为空(0字节),retrbinary将失败并超时。这是一个bug还是我缺少一个配置选项

ftp.retrbinary('RETR digital.conf', open('digital.conf','wb').write)

Downloading digital.conf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "download.py", line 13, in run
    ftp.retrbinary('RETR %s' % source, callback)
  File "c:\Python26\lib\ftplib.py", line 398, in retrbinary
    conn = self.transfercmd(cmd, rest)
  File "c:\Python26\lib\ftplib.py", line 360, in transfercmd
    return self.ntransfercmd(cmd, rest)[0]
  File "c:\Python26\lib\ftplib.py", line 337, in ntransfercmd
    resp = self.getresp()
  File "c:\Python26\lib\ftplib.py", line 216, in getresp
    raise error_temp, resp
ftplib.error_temp: 421 Timeout
ftp.retrbinary('RETR digital.conf',open('digital.conf','wb')。write)
下载digital.conf
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“download.py”,第13行,正在运行
ftp.retrbinary('RETR%s'%source,回调)
文件“c:\Python26\lib\ftplib.py”,第398行,在retrbinary中
conn=self.transfercmd(cmd,rest)
文件“c:\Python26\lib\ftplib.py”,第360行,在transfercmd中
返回self.ntransfercmd(cmd,rest)[0]
文件“c:\Python26\lib\ftplib.py”,第337行,在ntransfercmd中
resp=self.getresp()
文件“c:\Python26\lib\ftplib.py”,第216行,在getresp中
升高错误温度,分别
ftplib.error_temp:421超时

其他非零字节文件传输正常

这是您的会话空闲时间太长。您可以在总统提交文件后实例化ftplib。否则。修改ftp软件配置

例如,如果使用vsftpd,可以将以下配置添加到vsftpd.conf:


空闲会话超时=60000#默认值为600秒

你能用普通的FTP客户端获取文件吗?@Wobble,是的,例如filezilla,处理得很好。你明白自己的答案吗?