在Python 3中,我使用pathlib
定义了两条路径,例如:
from pathlib import Path
origin = Path('middle-earth/gondor/minas-tirith/castle').resolve()
destination = Path('middle-earth/gondor/osgiliath/tower').resolve()
如何获得从origin
到destination
的相对路径?在此示例中,我想要一个返回../../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 / ...
这是普通的os.path.relpath