python urljoin找不到绝对路径

时间:2018-04-13 21:06:05

标签: python html relative-path absolute-path

我试图获得绝对路径但我没有得到正确的结果。我正在尝试:

鉴于我有这个html页面网址:

url1 = 'build/en/index.html'

我在文件中有这个相对路径:

url2  = '/pub-assets/css/indexen.css'

我正在做:

urljoin(url1, url2)

所以我应该 build / pub-assets / css / indexen.css

但我没有得到预期的结果。 任何建议都非常感激。

2 个答案:

答案 0 :(得分:0)

如果您的url1是文件(而不是目录),则应使用urlparseParseResult._replace修改路径以修改结果。

from urlparse import urlsplit

url1 = 'https://example.com/en/index.html'
url2  = 'pub-assets/css/indexen.css'

p = urlsplit(url1).path
new_path = p[:p.rfind('/') + 1] + url2    #Gets the last directory and appends url
joined = urlsplit(url1)._replace(path=new_path)
print joined.geturl()  #Outputs https://example.com/en/pub-assets/css/indexen.css

这假设url1是绝对路径而url2是相对路径。

答案 1 :(得分:0)

Python 3.6.1:

>>> u1 = 'https://example.com/en/index.html'
>>> u2 = 'pub-assets/css/indexen.css'
>>> import urllib.parse
>>> urllib.parse.urljoin(u1, u2)
'https://example.com/en/pub-assets/css/indexen.css'

Python 2.7.14:

>>> u1 = 'https://example.com/en/index.html'
>>> u2 = 'pub-assets/css/indexen.css'
>>> import urlparse
>>> urlparse.urljoin(u1, u2)
'https://example.com/en/pub-assets/css/indexen.css'

请注意更改的导入。我会仔细检查你的Python版本,import语句,或者发布更多你的程序。