0

我想从绝对路径和相对路径中获取绝对路径:

absolute1 = '/a/b/c/d.js'
relative = '../../e.js'
absolute2 = getAbsoluteFromAbsoluteAndRelative(absolute1, relative) 

在这个例子absolute2中应该是相等的'a/e.js'

方法怎么写getAbsoluteFromAbsoluteAndRelative

更新: 我发现os.path.abspath但它只需要一个参数

4

2 回答 2

4

您的绝对路径仍然包含一个文件名,因此请删除它以os.path.dirname()获取目录。

然后将两者加入并应用于os.path.normpath()结果:

os.path.normpath(os.path.join(os.path.dirname(absolute1), relative))

normpath规范化具有相对引用的路径;例如,A/foo/../B变成。A/B

演示:

>>> import os.path
>>> absolute1 = '/a/b/c/d.js'
>>> relative = '../../e.js'
>>> os.path.normpath(os.path.join(os.path.dirname(absolute1), relative))
'/a/e.js'
于 2013-10-22T14:49:11.387 回答
0

尝试absolute2 = os.path.join(os.path.dirname(absolute1), relative)

编辑:Martijn 打败了我。把它包起来os.path.normpath是要走的路。

于 2013-10-22T14:51:46.477 回答