我正在尝试使用python的ftplib下载文件,而我正在运行一个问题。当我在计算机上运行脚本时出现错误:
Traceback (most recent call last):
File "ftp_get.py", line 20, in <module>
ftps.retrbinary('RETR '+ filename, file.write)
File "C:\Python27\lib\ftplib.py", line 710, in retrbinary
conn.unwrap()
File "C:\Python27\lib\ssl.py", line 771, in unwrap
s = self._sslobj.shutdown()
socket.error: [Errno 0] Error
但是当我在服务器上运行它时,它可以完美运行。今天早上它也在我的电脑上运行,但现在我收到了错误。 Python代码如下:
from ftplib import FTP_TLS
import os
import glob
user = "something"
passwd = "some_password"
ftps = FTP_TLS('domain')
ftps.login(user, passwd)
ftps.prot_p()
filenames = ftps.nlst()
for filename in filenames:
local_filename = os.path.join('C:\\test2\\', filename)
file = open(local_filename, 'wb')
ftps.retrbinary('RETR '+ filename, file.write)
print "Downloading - " + filename
#ftps.delete (filename)
#print "Deleting - " + filename
file.close()
ftps.quit()
为什么它适用于某些计算机而不适用于其他计算机?
答案 0 :(得分:0)
访问Pure-FTPd服务器时似乎存在问题。这里记录了:https://bugs.python.org/issue25437根据报告,您可以为服务器设置兼容模式。在我的情况下,我无权访问服务器,因此注释掉了ftps.prot_p()
,这意味着数据是未加密的。