如何使用pathlib在Python中获取两个绝对路径之间的相对路径?

问题描述 投票:3回答:1

在Python 3中,我使用pathlib定义了两条路径,例如:

from pathlib import Path
origin      = Path('middle-earth/gondor/minas-tirith/castle').resolve()
destination = Path('middle-earth/gondor/osgiliath/tower').resolve()

如何获得从origindestination的相对路径?在此示例中,我想要一个返回../../osgiliath/tower或等效值的函数。

理想情况下,我有一个始终满足的功能relative_path

origin.joinpath(
    relative_path(origin, destination)
).resolve() == destination.resolve()

(嗯,理想地>>会有一个运算符-使得destination == origin / (destination - origin)始终为真)]

注意,在这种情况下Path.relative_to是不够的,因为origin不是destination的父项。另外,我不使用符号链接,因此可以安全地假设没有一个符号链接可以简化问题。

如何实现relative_path

[在Python 3中,我使用pathlib定义了两个路径,例如:from pathlib import路径origin = Path('middle-earth / gondor / minas-tirith / castle')。resolve()destination = Path('middle-earth / gondor / osgiliath / ...

python python-3.x pathlib
1个回答
0
投票

这是普通的os.path.relpath

© www.soinside.com 2019 - 2024. All rights reserved.