【发布时间】:2020-01-25 01:30:01
【问题描述】:
我正在尝试从客户端的 ftp 服务器下载文件。我有获取文件的代码,它在我的笔记本电脑上运行良好。当我从虚拟机内的生产服务器中的控制台运行它时,它不起作用。它也不能在我的台式电脑内的虚拟机上运行。 超时发生在 ftp.retrbinary
代码:
# python > 3.6
from ftplib import FTP
file_csv = 'test.txt'
ftp = FTP(host=hostname, timeout=20)
login = ftp.login(user=user_name, passwd=user_pass)
ftp.set_pasv(False)
ftp.cwd('/csv_files/')
localfile = open(file_csv, 'wb')
ftp.retrbinary('RETR ' + file_csv, localfile.write, 1024)
ftp.quit()
localfile.close()
我已将超时设置为 20,否则代码将永远不会停止,除非我强制执行。超时后我收到的消息是
~/.pyenv/versions/3.6.8/lib/python3.6/socket.py in accept(self)
203 For IP sockets, the address info is a pair (hostaddr, port).
204 """
--> 205 fd, addr = self._accept()
206 # If our type has the SOCK_NONBLOCK flag, we shouldn't pass it onto the
207 # new socket. We do not currently allow passing SOCK_NONBLOCK to
我无法解决这个问题。请如果有人可以帮助解决这个问题,tahnks。
【问题讨论】: