ftplib退回error_proto

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (155)

我在我的Centos服务器上有pyftpdlib 0.7.0,当我尝试运行此命令时,我在我的客户端使用ftplib我得到此错误

客户端 操作系统:Windows 7 python V:2.7 服务器操作系统:CentOs

代码:

from ftplib import FTP
ftp = FTP('xxx.xxx.xxx.xxx')
ftp.login(user='xxx', passwd='xxx' )
ls = []
ftp.retrlines('RETR 2.jpg', callback =ls.append)
print ls

错误:

Traceback (most recent call last):
  File "E:\py\ftp test\ftpTest.py", line 7, in <module>
    ftp.retrlines('RETR 2.jpg', callback =ls.append)
  File "C:\Python27\lib\ftplib.py", line 422, in retrlines
    conn = self.transfercmd(cmd)
  File "C:\Python27\lib\ftplib.py", line 361, in transfercmd
    return self.ntransfercmd(cmd, rest)[0]
  File "C:\Python27\lib\ftplib.py", line 330, in ntransfercmd
    resp = self.sendcmd(cmd)
  File "C:\Python27\lib\ftplib.py", line 244, in sendcmd
    return self.getresp()
  File "C:\Python27\lib\ftplib.py", line 220, in getresp
    raise error_proto, resp
error_proto: 
提问于
用户回答回答于

不确定这是否有帮助,但这是我编写文件检索行的方式:

        gfile = open(filename, 'wb')
        ftp.retrbinary('RETR %s' % filename, gfile.write)
        gfile.close()

有一段时间我遇到了这样的问题,但它和您的不完全一样,我的解决办法是更改ftp.retr行的格式,Retr本身必须是“,文件名是分开的。很明显,你的程序使用的是一个列表,但这正是我在我的程序中使用的方式。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励