Python разделил URL-адрес, чтобы найти имя и расширение имени
Я ищу способ извлечь имя файла и расширение из определенного URL-адреса с помощью Python
позволяет сказать, что URL выглядит следующим образом
picture_page = "http://distilleryimage2.instagram.com/da4ca3509a7b11e19e4a12313813ffc0_7.jpg"
Как мне получить следующее.
filename = "da4ca3509a7b11e19e4a12313813ffc0_7"
file_ext = ".jpg"
Ответы
Ответ 1
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))
Единственным недостатком является то, что ваше имя файла будет содержать предыдущее/которое вы всегда можете удалить самостоятельно.
Ответ 2
Попробуйте с 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')
Ответ 3
filename = picture_page.split('/')[-1].split('.')[0]
file_ext = '.'+picture_page.split('.')[-1]
Ответ 4
# Here your link:
picture_page = "http://distilleryimage2.instagram.com/da4ca3509a7b11e19e4a12313813ffc0_7.jpg"
#Here your filename and ext:
filename, ext = (picture_page.split('/')[-1].split('.'))
Когда вы выполните picture_page.split('/'), он вернет список строк из вашего раскола url с помощью /
.
Если вы хорошо знаете индексацию списка python, вы должны знать, что -1 даст вам последний элемент или первый элемент из конца списка.
В вашем случае это будет имя файла: da4ca3509a7b11e19e4a12313813ffc0_7.jpg
Разделив это на разделитель .
, вы получите два значения:
da4ca3509a7b11e19e4a12313813ffc0_7
и jpg
, как и ожидалось, потому что они разделены периодом, который вы использовали в качестве разделителя в вызове split().
Теперь, поскольку последний раскол возвращает два значения в результирующем списке, вы можете его tuplify.
Следовательно, в основном, результат будет выглядеть следующим образом:
filename,ext = ('da4ca3509a7b11e19e4a12313813ffc0_7', 'jpg')
Ответ 5
os.path.splitext
поможет вам извлечь имя файла и расширение после того, как вы извлекли соответствующую строку из URL с помощью urlparse
:
fName, ext = os.path.splitext('yourImage.jpg')
Ответ 6
Это самый простой способ найти имя и расширение изображения с помощью регулярного выражения.
import re
import sys
picture_page = "http://distilleryimage2.instagram.com/da4ca3509a7b11e19e4a12313813ffc0_7.jpg"
regex = re.compile('(.*\/(?P<name>\w+)\.(?P<ext>\w+))')
print regex.search(picture_page).group('name')
print regex.search(picture_page).group('ext')
Ответ 7
>>> 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'