假设我有绝对路径和相对路径
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)
我认为这太麻烦了。
答案 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')