urllib2 file name

前端 未结 14 1821
感动是毒
感动是毒 2020-12-01 03:27

If I open a file using urllib2, like so:

remotefile = urllib2.urlopen(\'http://example.com/somefile.zip\')

Is there an easy way to get the

14条回答
  •  臣服心动
    2020-12-01 04:22

    If you only want the file name itself, assuming that there's no query variables at the end like http://example.com/somedir/somefile.zip?foo=bar then you can use os.path.basename for this:

    [user@host]$ python
    Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04) 
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import os
    >>> os.path.basename("http://example.com/somefile.zip")
    'somefile.zip'
    >>> os.path.basename("http://example.com/somedir/somefile.zip")
    'somefile.zip'
    >>> os.path.basename("http://example.com/somedir/somefile.zip?foo=bar")
    'somefile.zip?foo=bar'
    

    Some other posters mentioned using urlparse, which will work, but you'd still need to strip the leading directory from the file name. If you use os.path.basename() then you don't have to worry about that, since it returns only the final part of the URL or file path.

提交回复
热议问题