Я пытаюсь объединить базовый URL url1
и относительный путь url2
, используя Python 3 urllib.parse
, но не получаю желаемого результата.Кроме того, я попытался использовать os.path.join
(который не предназначен для этой цели) и простую конкатенацию строк с использованием .format()
:
import os.path
import urllib.parse
url1 = "www.sampleurl.tld"
url2 = "/some/path/here"
print(urllib.parse.urljoin(url1, url2))
# --> "/some/path/here"
print(os.path.join(url1, url2))
# --> "/some/path/here"
print("{}{}".format(url1, url2))
# --> "www.sampleurl.tld/some/path/here" (desired output)
Простая конкатенация строк возвращает желаемый абсолютный URL.Однако этот подход кажется очень наивным и не очень элегантным, поскольку он предполагает, что url2
начинается с /
, что может быть не так.Конечно, я мог бы проверить это, вызвав url2.startswith('/')
и изменив конкатенацию строк на "{}/{}".format(url1, url2)
, чтобы обеспечить желаемую гибкость, но я все еще задаюсь вопросом, как сделать это правильно с помощью urllib.parse
.