我想从绝对路径和亲戚那里获得绝对路径:
absolute1 = '/a/b/c/d.js'
relative = '../../e.js'
absolute2 = getAbsoluteFromAbsoluteAndRelative(absolute1, relative)
在此示例中,absolute2
应该相等'a/e.js'
如何编写getAbsoluteFromAbsoluteAndRelative
方法?
更新
我发现os.path.abspath
但只需要一个参数
答案 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
中包含此内容是可行的方法。