Как получить все после последнего слэш в URL-адресе? - программирование
Подтвердить что ты не робот

Как получить все после последнего слэш в URL-адресе?

Как я могу извлечь все, что следует за последней косой чертой в 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.

4b9b3361

Ответ 1

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

url.rsplit('/', 1)

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

url.rsplit('/', 1)[-1]

Ответ 2

Еще один (idio (ma) tic) способ:

URL.split("/")[-1]

Ответ 3

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

In [1]: 'http://www.test.com/page/TEST2'.rsplit('/', 1)[1]
Out[1]: 'TEST2'

Ответ 4

Вы можете сделать так:

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

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

Ответ 5

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

Ответ 6

extracted_url = url[url.rfind("/")+1:];

Ответ 7

Вот более общий, регулярный способ сделать это:

    re.sub(r'^.+/([^/]+)$', r'\1', url)

Ответ 8

os.path.basename(os.path.normpath('/folderA/folderB/folderC/folderD/'))

       folderD

Ответ 9

partition и rpartition также удобны для таких вещей:

url.rpartition('/')[2]

Ответ 10

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

Ответ 11

url ='http://www.test.com/page/TEST2'.split('/')[4]
print url

Вывод: TEST2.