python ftplib.error_perm:500不支持协议

时间:2014-10-17 13:49:59

标签: python sftp ftplib

有人能指出我正确的方向吗?我使用此功能登录到另一个 SFTP 站点,但它不能在此站点上运行。我收到以下内容:

Traceback (most recent call last):
  File "C:\Users\USR01\python\py_programs\sftp_test1.py", line 87, in <module>
    main(site1, uid, pwd)
  File "C:\Users\USR01\python\py_programs\sftp_test1.py", line 83, in main
    sftp_login(site1, uid, pwd)
  File "C:\Users\USR01\python\py_programs\sftp_test1.py", line 55, in sftp_login
    ftps.login(uid,pwd)
  File "C:\Users\USR01\python\py_programs\ftplib.py", line 652, in login
    self.auth()
  File "C:\Users\USR01\python\py_programs\ftplib.py", line 660, in auth
    resp = self.voidcmd('AUTH TLS')
  File "C:\Users\USR01\python\py_programs\ftplib.py", line 254, in voidcmd
    return self.voidresp()
  File "C:\Users\USR01\python\py_programs\ftplib.py", line 229, in voidresp
    resp = self.getresp()
  File "C:\Users\USR01\python\py_programs\ftplib.py", line 224, in getresp
    raise error_perm, resp
ftplib.error_perm: 500 Protocol not supported.
[Finished in 0.2s with exit code 1]

这是我的代码:

import os, csv, datetime
from ftplib import FTP_TLS

def sftp_login(site1, uid, pwd):
    ftps = FTP_TLS(site1)
    ftps.login(uid,pwd)
    ftps.prot_p()
    ftps.retrlines('LIST')
    ftps.quit()
非常感谢,谢谢

2 个答案:

答案 0 :(得分:1)

更新

重新阅读OP问题后。您正在尝试连接到 SFTP 这是一个 SSH 连接,而您正在使用FTPS

因此,它显示您的错误,即不支持此协议。并且ftplib不支持sftp

来自pypi pysftp的此模​​块可能会有所帮助。

答案 1 :(得分:0)

如果它是活动的ftp,

尝试添加: ftp.set_pasv(False)

在行之后的

: ftps.login(uid,pwd)