python - ftplib retrlines error_proto

标签 python ftp centos

我的 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 需要单独位于“”中,并且文件名分开。你的显然使用了一个列表,但这就是我在我的程序中使用它的方式。

关于python - ftplib retrlines error_proto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12723907/

相关文章:

php - Sphinx 排序模式在 PHP 中不起作用

regex - 这是否可以使用正则表达式来实现?

python - 如何在 django api 中获取图像的响应,在 base64 中编码后?

Python 3.6.4 Arcade 模块窗口错误? {pyglet.gl.lib.GLException : b'invalid enumerant'}

java - 如何使用相同的 TLS session 通过数据连接连接到 FTPS 服务器?

Python FTP 文件名无效错误

linux - 在centos 4上不使用yum安装Gnome

python - Python中的顺序模式匹配算法

python - 按空格拆分列表列表中的字符串

php - 通过 TLS 的显式 FTP 失败 : Warning: ftp_fput(): data_accept: SSL/TLS handshake failed