Python FTP“ERRNO 10054”顺序文件下载

时间:2013-04-04 20:09:20

标签: python python-2.7 ftp ibm-midrange ftplib

我写了一些代码来登录AS / 400 FTP站点,移动到某个目录,找到我需要下载的文件。它可以工作,但似乎我收到了很多文件要下载:

socket.error: [Errno 10054] An existing connection was 
              forcibly closed by the remote host

我登录并成功导航到相应的目录:

try:
    newSession = ftplib.FTP(URL,username,password)
    newSession.set_debuglevel(3)
    newSession.cwd("SOME DIRECTORY")
except ftplib.all_errors, e:
    print str(e).split(None,1)
    sys.exit(0) 

我抓住了我需要的文件列表:

filesToDownload= filter(lambda x: "SOME_FILE_PREFIX" in x, newSession.nlst())

这就是死亡的地方(特别是newSession.retrbinary('RETR '+f,tempFileVar.write)):

for f in filesToDownload:
    newLocalFileName = f + ".edi"
newLocalFilePath = os.path.join(directory,newLocalFileName)
tempFileVar = open(newLocalFilePath,'wb')
newSession.retrbinary('RETR '+f,tempFileVar.write)
tempFileVar.close()

在我使用Errno 10054命中之前,它下载了超过85%的文件,我想我很困惑为什么它在接近完成时似乎任意死亡。我现在的诚实猜测是,在尝试提取这些文件时,对FTP的请求太多了。

以下是我在命令提示符下显示的错误的屏幕截图:

enter image description here

任何建议或指示都会很棒。我还在尝试解决这个问题。

1 个答案:

答案 0 :(得分:0)

我认为没有真正的答案,看起来客户端的FTP在这里是错误的,它非常不稳定。我能做的最好的工作就是抓住抛出的套接字错误,并在强行断开之前恢复我在上一次会话中停止的地方。客户的IT团队最终正在调查问题。

叹息。