我对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中获取这些配置文件?
答案 0 :(得分:0)
我可以告诉你简单的方法来做到这一点。
Ftp登录网址:ftp://username:password@hostname/
用户名:您的用户名
密码:您的密码
要从FTP服务器下载文件,您可以:
import urllib
urllib.urlretrieve('ftp://username:password@hostname/yourconfigname', 'yourconfigname')
在你的情况下,你可以做这样的事情。
=============================================== ================
至于你的问题,python错误清楚地表明你没有正确建立连接(始终关闭连接)或可能是你的目的地已经连接到最大目的地,这就是你的目标目的地关闭连接的原因。