[Python-Dev] urllib.urlretrieve() and handling 550 errors when reading from FTP

Brett C. bac at OCF.Berkeley.EDU
Sun Jul 11 21:08:51 CEST 2004


Guido van Rossum wrote:
[SNIP]
> 
> Why should I have to use a trailing backslash to get a directory
> listing?  That's not in the FTP standard and probably won't work
> everywhere.
> 

It's the way the code is written for the FTP wrapper in urllib; has 
nothing to do with ftp.python.org or FTP.  Basically the code checks to 
see if there is a trailing slash.  If it does it assumes it is a 
directory and thus only requests a listing of the path from the server. 
  Otherwise it tries to get the file.  If that get fails (with a 550) it 
then decides to try getting a listing for the path.  If that works it 
returns that, otherwise it completely fails.

Basically I don't think there is a way to make this work for urllib 
nicely.  If no one has any objections I will just clarify the docs 
stating that if an attempt to get a file fails on a 550 error (and of 
course I will say what that means) it will then try a LIST command and 
if that succeeds that is what is returned.  And if you need more 
fine-grained control then use ftplib.

-Brett


More information about the Python-Dev mailing list