Как получить все после последней косой черты в URL? - PullRequest
84 голосов
/ 31 августа 2011

Как я могу извлечь то, что следует за последним слешем в URL в Python?Например, эти URL должны возвращать следующее:

URL: http://www.test.com/TEST1
returns: TEST1

URL: http://www.test.com/page/TEST2
returns: TEST2

URL: http://www.test.com/page/page/12345
returns: 12345

Я пробовал urlparse, но это дает мне полный путь к файлу, например page/page/12345.

Ответы [ 11 ]

196 голосов
/ 31 августа 2011

Вам не нужны причудливые вещи, просто посмотрите строковые методы в стандартной библиотеке , и вы можете легко разделить ваш URL между частью имени файла и остальными:

url.rsplit('/', 1)

Таким образом, вы можете получить интересующую вас деталь просто:

url.rsplit('/', 1)[-1]
53 голосов
/ 31 августа 2011

Еще один (идиотический) способ:

URL.split("/")[-1]
13 голосов
/ 31 августа 2011

rsplit должно соответствовать задаче:

In [1]: 'http://www.test.com/page/TEST2'.rsplit('/', 1)[1]
Out[1]: 'TEST2'
7 голосов
/ 20 сентября 2013

Вы можете сделать следующее:

head, tail = os.path.split(url)

Где tail будет именем вашего файла.

6 голосов
/ 04 апреля 2013

urlparse хорошо использовать, если вы хотите (скажем, избавиться от любых параметров строки запроса).

import urllib.parse

urls = [
    'http://www.test.com/TEST1',
    'http://www.test.com/page/TEST2',
    'http://www.test.com/page/page/12345',
    'http://www.test.com/page/page/12345?abc=123'
]

for i in urls:
    url_parts = urllib.parse.urlparse(i)
    path_parts = url_parts[2].rpartition('/')
    print('URL: {}\nreturns: {}\n'.format(i, path_parts[2]))

Вывод:

URL: http://www.test.com/TEST1
returns: TEST1

URL: http://www.test.com/page/TEST2
returns: TEST2

URL: http://www.test.com/page/page/12345
returns: 12345

URL: http://www.test.com/page/page/12345?abc=123
returns: 12345
2 голосов
/ 12 апреля 2018

Вот более общий способ регулярного выражения:

    re.sub(r'^.+/([^/]+)$', r'\1', url)
2 голосов
/ 31 августа 2011
extracted_url = url[url.rfind("/")+1:];
0 голосов
/ 15 января 2019
os.path.basename(os.path.normpath('/folderA/folderB/folderC/folderD/'))

folderD

0 голосов
/ 19 мая 2017

Разделить URL и вытолкнуть последний элемент url.split('/').pop()

0 голосов
/ 19 февраля 2013
url ='http://www.test.com/page/TEST2'.split('/')[4]
print url

Вывод: TEST2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...