尝试通过python 2.7中的ftp下载二进制文件时出现错误10054

时间:2015-08-22 05:41:56

标签: python ftp

我对python很新,所以这里很容易出现用户错误,但我不太清楚该怎么做。

我试图通过ftp登录zyxel gs2200交换机并下载它的配置文件。

通过cmd ftp的命令是

get config X.log其中X.log是您决定命名的任何内容。

在python中我可以很好地登录,但是我无法在不抛出异常的情况下下载文件。

 import ftplib
 ftp = ftplib.FTP("my.ip.here")
 ftp.login('user','Pass') 

'230 Logged in'

ftp.retrbinary('RETR config', open('config', 'wb').write)

Traceback (most recent call last):

File "<pyshell#14>", line 1, in <module>

File "C:\Python27\lib\ftplib.py", line 398, in retrbinary
    self.voidcmd('TYPE I')

File "C:\Python27\lib\ftplib.py", line 248, in voidcmd
    self.putcmd(cmd)

File "C:\Python27\lib\ftplib.py", line 178, in putcmd
    self.putline(line)

File "C:\Python27\lib\ftplib.py", line 173, in putline
    self.sock.sendall(line)

File "C:\Python27\lib\socket.py", line 222, in meth
   return getattr(self._sock,name)(*args)

error: [Errno 10054] An existing connection was forcibly closed by the remote host

我之前也试过打开一个文件然后只是在方法中调用它,但它仍然会出现同样的错误。

有没有人知道如何在python中获取这些配置文件?

1 个答案:

答案 0 :(得分:0)

我可以告诉你简单的方法来做到这一点。

Ftp登录网址:ftp://username:password@hostname/

用户名:您的用户名

密码:您的密码

要从FTP服务器下载文件,您可以:

import urllib 
urllib.urlretrieve('ftp://username:password@hostname/yourconfigname', 'yourconfigname')

在你的情况下,你可以做这样的事情。

=============================================== ================

至于你的问题,python错误清楚地表明你没有正确建立连接(始终关闭连接)或可能是你的目的地已经连接到最大目的地,这就是你的目标目的地关闭连接的原因。