By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,369 Members | 1,253 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,369 IT Pros & Developers. It's quick & easy.

ftplib returns EOFError

P: n/a
Hi All,

I've written a little method to connect to an ftpserver which works well,
however when I send a file using this ftp connection oddly I _sometimes_ get
returned an EOFError from ftplib.getline even though my file is actually
transferred.

Here's my script:

def uploadViaFtp(self, file, filename):
'''A method to upload a file via ftp'''
ftpserverloc = self.getItunesUftpServer()
ftpserverusername = self.getItunesUftpUser()
ftpserverpassword = self.getItunesUftpPsswd()
ftp = ftplib.FTP(ftpserverloc)
ftp.login(ftpserverusername, ftpserverpassword)
try:
ftp.storbinary("STOR " + filename, file, 1024)
finally:
file.close()
ftp.quit()
And here's the traceback:
Traceback (innermost last):
Module ZPublisher.Publish, line 114, in publish
Module ZPublisher.mapply, line 88, in mapply
Module ZPublisher.Publish, line 40, in call_object
Module Products.FileSystemSite.FSPythonScript, line 108, in __call__
Module Shared.DC.Scripts.Bindings, line 311, in __call__
Module Shared.DC.Scripts.Bindings, line 348, in _bindAndExec
Module Products.FileSystemSite.FSPythonScript, line 164, in _exec
Module None, line 28, in upload_submit
- <FSPythonScript at
/silva/service_views/UCLItunesUPodcast/edit/Asset/UCLItunesUTrack/upload_sub
mit>
- Line 28
Module Products.UCLItunesUPodcast.UCLItunesUService, line 138, in
uploadViaFtp
Module ftplib, line 523, in quit
Module ftplib, line 246, in voidcmd
Module ftplib, line 221, in voidresp
Module ftplib, line 207, in getresp
Module ftplib, line 193, in getmultiline
Module ftplib, line 183, in getline
EOFError
Any help in catching and ignoring this error would be greatly appreciated.

Regards

Jon

Jun 27 '08 #1
Share this Question
Share on Google+
1 Reply


P: n/a
On Mon, 19 May 2008 13:27:23 +0100, Jon Bowlas wrote:
Hi All,

I've written a little method to connect to an ftpserver which works well,
however when I send a file using this ftp connection oddly I _sometimes_ get
returned an EOFError from ftplib.getline even though my file is actually
transferred.

Here's my script:

def uploadViaFtp(self, file, filename):
'''A method to upload a file via ftp'''
ftpserverloc = self.getItunesUftpServer()
ftpserverusername = self.getItunesUftpUser()
ftpserverpassword = self.getItunesUftpPsswd()
ftp = ftplib.FTP(ftpserverloc)
ftp.login(ftpserverusername, ftpserverpassword)
try:
ftp.storbinary("STOR " + filename, file, 1024)
finally:
file.close()
ftp.quit()
And here's the traceback:
Traceback (innermost last):
Module ZPublisher.Publish, line 114, in publish
Module ZPublisher.mapply, line 88, in mapply
Module ZPublisher.Publish, line 40, in call_object
Module Products.FileSystemSite.FSPythonScript, line 108, in __call__
Module Shared.DC.Scripts.Bindings, line 311, in __call__
Module Shared.DC.Scripts.Bindings, line 348, in _bindAndExec
Module Products.FileSystemSite.FSPythonScript, line 164, in _exec
Module None, line 28, in upload_submit
- <FSPythonScript at
/silva/service_views/UCLItunesUPodcast/edit/Asset/UCLItunesUTrack/upload_sub
mit>
- Line 28
Module Products.UCLItunesUPodcast.UCLItunesUService, line 138, in
uploadViaFtp
Module ftplib, line 523, in quit
Module ftplib, line 246, in voidcmd
Module ftplib, line 221, in voidresp
Module ftplib, line 207, in getresp
Module ftplib, line 193, in getmultiline
Module ftplib, line 183, in getline
EOFError
Any help in catching and ignoring this error would be greatly appreciated.

Regards

Jon
ftp.quit() attempts to send a quit command and wait for the response
before closing. Apparently, sometime the connection is already closed
(don't know why) and you get the exception.

I guess you could do something like this:

try:
ftp.quit()
except EOFError:
ftp.close()
Ciao
-----
FB
Jun 27 '08 #2

This discussion thread is closed

Replies have been disabled for this discussion.