在python中将相对路径添加到绝对路径

时间:2018-10-18 16:56:45

标签: python filenames relative-path

假设我有绝对路径和相对路径

abspath = os.path.abspath(__file__)
relpath = '../../folder/file'

如何在没有../..的情况下将这两个路径“相加”在一起,是否有执行此操作的模块?到目前为止我什么都找不到。我正在考虑以下格式:

mypath = some_module.function(abspath, relpath)

代替

mypath = os.path.join(os.path.dirname(os.path.dirname(abspath))), folder, file)

我认为这太麻烦了。

1 个答案:

答案 0 :(得分:2)

您可以join并使用normpath

os.path.normpath(os.path.join(abspath, relpath))

来自normpath文档:

  

通过折叠多余的分隔符和上一级来规范化路径名   引用,以便A // B,A / B /,A /./ B和A / foo /../ B都成为A / B。


从Python 3.4开始,您还可以使用pathlib模块:

from pathlib import Path

abspath = Path('/home/xxxx/yyy')
relpath = Path('../../folder/file')
(abspath / relpath).resolve()
# PosixPath('/home/xxxx')