Agnostic fetching

Ivan Ven Osdel ivan at datasyncorp.com
Mon Aug 4 11:40:37 EDT 2008


>----- Original Message -----
>From: "Diez B. Roggisch" <deets at nospam.web.de>
>To: python-list at python.org
>Sent: Saturday, August 2, 2008 11:05:07 AM GMT -06:00 US/Canada Central
>Subject: Re: Agnostic fetching

>Bruce Frederiksen schrieb:
> On Fri, 01 Aug 2008 17:05:00 -0700, jorpheus wrote:
> 
>> OK, that sounds stupid. Anyway, I've been learning Python for some
>> time now, and am currently having fun with the urllib and urllib2
>> modules, but have run into a problem(?) - is there any way to fetch
>> (urllib.retrieve) files from a server without knowing the filenames?
>> For instance, there is smth like folder/spam.egg, folder/
>> unpredictable.egg and so on. If not, perhaps some kind of glob to
>> create a list of existing files? I'd really appreciate some help,
>> since I'm really out of my (newb) depth here.
> 
> You might try the os.path module and/or the glob module in the standard
> python library.

>Not on remote locations. The only work on your local filesystem.

>Diez

Here's a function I wrote for checking remote or local file existence. It works for me but admittedly I haven't tested many cases with it. Also its currently specific to an http URI scheme.

def fileExists(self, fileUrlPath):
    fileExists = False
    if "http:" in fileUrlPath.lower():
        #We don't want to open the file so ask the header if the
        #file exists
        urlParts = urlparse(fileUrlPath)
        host = urlParts[1]
        http = httplib.HTTP(host)
        http.putrequest("HEAD", fileUrlPath)
        http.putheader("Host", host)
        http.endheaders()
        errorcode, errormessage, headers = http.getreply()
        if errorcode == 200:
            fileExists = True
    else:
        fileExists = path.exists(fileUrlPath)

    return fileExists

-- 
Ivan Ven Osdel
http://datasyncsuite.com



More information about the Python-list mailing list