J'ai deux URL :
url1 = "http://127.0.0.1/test1/test2/test3/test5.xml"
url2 = "../../test4/test6.xml"
Comment puis-je obtenir une URL absolue pour url2 ?
J'ai deux URL :
url1 = "http://127.0.0.1/test1/test2/test3/test5.xml"
url2 = "../../test4/test6.xml"
Comment puis-je obtenir une URL absolue pour url2 ?
Vous devez utiliser urlparse.urljoin :
>>> import urlparse
>>> urlparse.urljoin(url1, url2)
'http://127.0.0.1/test1/test4/test6.xml'
Avec Python 3 (où urlparse est renommé en urllib.parse ), vous pouvez l' utiliser comme suit :
>>> import urllib.parse
>>> urllib.parse.urljoin(url1, url2)
'http://127.0.0.1/test1/test4/test6.xml'
Si votre chemin relatif se compose de plusieurs parties, vous devez les joindre séparément, car urljoin
remplacerait le chemin relatif, ne le joindrait pas. Le moyen le plus simple de le faire est d'utiliser posixpath
.
>>> import urllib.parse
>>> import posixpath
>>> url1 = "http://127.0.0.1"
>>> url2 = "test1"
>>> url3 = "test2"
>>> url4 = "test3"
>>> url5 = "test5.xml"
>>> url_path = posixpath.join(url2, url3, url4, url5)
>>> urllib.parse.urljoin(url1, url_path)
'http://127.0.0.1/test1/test2/test3/test5.xml'
Voir aussi : Comment joindre les composants d'un chemin lorsque vous construisez une URL en Python
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.