标识URL的文件扩展名

时间:2015-02-02 23:49:39

标签: python python-2.7 url file-extension

我希望提取文件扩展名(如果它存在于网址)(尝试识别哪些链接是我不想要的扩展名列表,例如.jpg.exe等。< / p>

因此,我希望从以下网址www.example.com/image.jpg中提取扩展名jpg,并在没有www.example.com/file等扩展名时处理案例(即不返回任何内容)。

我无法思考如何实现它,但我想到的一种方法是在最后一个点之后获取所有内容,如果有扩展名将允许我查看该扩展名,如果没有&# 39; t,对于示例www.example.com/file,它将返回com/file(给定的不在我的排除文件扩展名列表中,没问题。)

使用我不知道的包可能有另一种优越的方式,它可以识别什么是/不是实际的扩展。 (即应对URL实际上没有扩展名的情况)。

1 个答案:

答案 0 :(得分:2)

{3}}模块(Python 3中的urlparse)提供了处理URL的工具。虽然它没有提供从网址中提取文件扩展名的方法,但可以通过将其与urllib.parse相结合来实现:

from urlparse import urlparse
from os.path import splitext

def get_ext(url):
    """Return the filename extension from url, or ''."""
    parsed = urlparse(url)
    root, ext = splitext(parsed.path)
    return ext  # or ext[1:] if you don't want the leading '.'

使用示例:

>>> get_ext("www.example.com/image.jpg")
'.jpg'
>>> get_ext("https://www.example.com/page.html?foo=1&bar=2#fragment")
'.html'
>>> get_ext("https://www.example.com/resource")
''