从一个绝对和一个亲戚获得绝对路径

时间:2013-10-22 14:44:41

标签: python path

我想从绝对路径和亲戚那里获得绝对路径:

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

在此示例中,absolute2应该相等'a/e.js'

如何编写getAbsoluteFromAbsoluteAndRelative方法?

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

2 个答案:

答案 0 :(得分: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'

答案 1 :(得分:0)

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

编辑:Martijn打败了我。在os.path.normpath中包含此内容是可行的方法。