2017-06-18 81 views
0

有一个代码:如何从ftplibs读取响应命令?

from ftplib import FTP 
ftp = FTP('128.171.2.79') 
ftp.login() # Anonymous user 

HOWTO节省服务器的响应为变量?

实施例:

220-FileZilla Server 0.9.55 beta 
220 Welcome to server! 
530 Login or password incorrect! 
214-The following commands are recognized: 
    ABOR ADAT ALLO APPE AUTH CDUP CLNT CWD 
    DELE EPRT EPSV FEAT HASH HELP LIST MDTM 
    MFMT MKD MLSD MLST MODE NLST N... 

进入 “buffer_out” 变量。

+0

我不明白。 –

+0

全部,包括欢迎信息。在这种情况下,从惠康消息到登录响应。 –

回答

1

buffer_out = ftp.getwelcome()

获得调试日志打印电话 ftp.set_debuglevel(2)

要让客户端发送的每一行覆盖putline()putcmd()(即创建一个以FTP为基类并实现这些方法的类;在之前或之后调用父方法)。

要获得服务器覆盖返回的每一行getline(),getmultiline()getresp()voidresp();在你的代码之前调用父方法。

请参阅ftplib.py的源代码,您可能会发现许多您想覆盖的方法。

+0

但并不是所有来自服务器的响应,从wellcome到login.Canot显示状态为220,530和214的命令。例如:'$ ftp ip_addr ... 214-以下命令被识别...' –

+0

我扩展了答案。 – phd