Best way to trap errors in ftplib?

Peter A. Schott paschott at no.worldnet.spamm.att.net
Tue Jan 11 18:47:55 EST 2005


Using ftplib.FTP object for a project we have here to upload/download files.  I
know that I can wrap everything in try/except blocks, but I'm having trouble
getting the exact error messages out of the Exceptions.

I'd like to either send an e-mail or log the failure to a database.  It would
also be nice to see what the message is and perhaps add some additional logic
for delay/retry or something similar.

Has anyone done any of the above?  Willing to share some samples?

Here's a little of my code - maybe you can see what I'm doing/not doing.

def myuploadbinaryfunction(args here):
	objFTP = ftplib.FTP(HostName, UserName, Password)
	objFTP.cwd(RemotePath)
	
	try:
		objFTP.storbinary("STOR " + RemoteFile, file(os.path.join(LocalPath,
LocalFile), "rb"))
		SQLLogging.LogFTP(LocalFile, Company, 1)
	except Exception, errObj:
		SQLLogging.LogFTP(LocalFile, Company, 0)
		reportError("Failed to upload " + LocalFile, str(errObj))
		print Exception
		print errObj



In the above, reportError will send an e-mail to alert.  I realize that the
errObj in this case may not have the ability to convert to string, but am not
sure how to get the output otherwise.  Not sure how to handle a retry of a
failure, either.

Thank you for your help!

-Peter Schott



More information about the Python-list mailing list