Python. Как из ссылки достать имя файла с расширением
Есть тестовая ссылка url = 'https://example.com/txt/hello%20world.txt?v=9#python'. Необходимо максимально коротким способом достать из неё имя файла с расширением.
Мой способ :
unquoted_url = unquote_plus(string=url, encoding='utf-8', errors='Replace')
filename = os.path.basename(unquoted_url).split('?')[0]
Вопрос: есть ли ещё более короткий метод? И чтоб не спотыкался о пробелы, якорь, GET-параметры.
Ответы (1 шт):
Автор решения: Стас
→ Ссылка
Например так:
from urllib import parse
unquoted_url = parse.unquote("https://example.com/txt/hello%20world.txt?v=9#python")
path = parse.urlparse(unquoted_url).path
print(path.rstrip("/").split("/")[-1])
- path здесь это:
/txt/hello world.txt - rstrip я вызываю для обеспечения корректной работы при обработке url, заканчивающихся на
/(например,https://example.com/). Иначе, вы получите лишь пустую строку - Далее, просто делю по
/и беру последний элемент списка
STDOUT:
hello world.txt