11

I am looking for a way to extract a filename and extension from a particular url using Python

lets say a URL looks as follows

picture_page = "http://distilleryimage2.instagram.com/da4ca3509a7b11e19e4a12313813ffc0_7.jpg"

How would I go about getting the following.

filename = "da4ca3509a7b11e19e4a12313813ffc0_7"
file_ext = ".jpg"
4

7 に答える 7

32
try:
    # Python 3
    from urllib.parse import urlparse
except ImportError:
    # Python 2
    from urlparse import urlparse
from os.path import splitext, basename

picture_page = "http://distilleryimage2.instagram.com/da4ca3509a7b11e19e4a12313813ffc0_7.jpg"
disassembled = urlparse(picture_page)
filename, file_ext = splitext(basename(disassembled.path))

これの唯一の欠点は、ファイル名に先行する / が含まれていることです。これはいつでも自分で削除できます。

于 2012-05-11T13:29:10.393 に答える
12

urlparse.urlsplitを使用して URL を分割し、次にos.path.splitextを使用してファイル名と拡張子を取得してみてください (最後のファイル名のみを保持するには os.path.basename を使用します)

import urlparse
import os.path

picture_page = "http://distilleryimage2.instagram.com/da4ca3509a7b11e19e4a12313813ffc0_7.jpg"

print os.path.splitext(os.path.basename(urlparse.urlsplit(picture_page).path))

>>> ('da4ca3509a7b11e19e4a12313813ffc0_7', '.jpg')
于 2012-05-11T13:28:20.510 に答える
10
filename = picture_page.split('/')[-1].split('.')[0]
file_ext = '.'+picture_page.split('.')[-1]
于 2012-05-11T13:27:37.343 に答える
3

os.path.splitextを使用して URL から関連する文字列を抽出すると、ファイル名と拡張子を抽出するのに役立ちますurlparse

   fName, ext = os.path.splitext('yourImage.jpg')
于 2012-05-11T13:28:26.427 に答える
-2
>>> import re
>>> s = 'picture_page = "http://distilleryimage2.instagram.com/da4ca3509a7b11e19e4a12313813ffc0_7.jpg"'
>>> re.findall(r'\/([a-zA-Z0-9_]*)\.[a-zA-Z]*\"$',s)[0]
'da4ca3509a7b11e19e4a12313813ffc0_7'
>>> re.findall(r'([a-zA-Z]*)\"$',s)[0]
'jpg'
于 2012-05-11T13:31:46.880 に答える