【发布时间】:2019-04-29 06:32:10
【问题描述】:
我正在尝试连接以连接到 FTP 站点以下载一些文件:
from ftplib import FTP_TLS
from ftplib import FTP
import ssl
import ftplib
FTP_TLS.ssl_version = ssl.PROTOCOL_TLSv1_2
ftps = FTP_TLS(timeout=100)
ftps.set_debuglevel(2)
ftps.connect('IP', port)
ftps.auth()
ftps.prot_p()
ftps.login('username', 'password')
程序在失败之前尝试了一段时间,并出现以下错误:
得到 '' Traceback(最近一次调用最后一次):文件“FTP.py”,第 12 行,在 ftps.connect('IP', port) 文件“C:_data\learn\Miniconda\lib\ftplib.py”,第 155 行,在连接中 self.welcome = self.getresp() 文件“C:_data\learn\Miniconda\lib\ftplib.py”,第 236 行,在 getresp 中 resp = self.getmultiline() 文件“C:_data\learn\Miniconda\lib\ftplib.py”,第 222 行,在 getmultiline line = self.getline() 文件“C:_data\learn\Miniconda\lib\ftplib.py”,第 210 行,在 getline 引发 EOFError EOFError
我不确定这个错误的原因是什么。我可以使用与 FTP 客户端 (FileZilla) 相同的详细信息连接到 ftp 服务器。谁能指出我的代码是否存在问题以及解决此问题的可能选项。
编辑 1
如下所示发布 FileZilla 日志:
Status: Connecting to IP:Port... Status: Connection established, initializing TLS... Status: Verifying certificate... Status: TLS connection established, waiting for welcome message... Status: Logged in Status: Retrieving directory listing... Status: Directory listing of "/" successful
FIleZilla 显式弹出一个证书,我在我的桌面上按 OK,然后建立连接。我假设这里的失败是因为我的代码不接受证书。任何帮助表示赞赏。
【问题讨论】:
-
您是否在与 Python 代码相同的机器上运行 FileZilla?向我们展示它的日志文件。
-
已按建议更新。
-
@MartinPrikryl 感谢您的建议。详细查看 FileZilla 文件后,我开始从不同的角度看待问题
标签: python-3.x ftp ftps