python 库pathlib
提供Path.relative_to
. 如果一个路径是另一个路径的子路径,则此函数可以正常工作,如下所示:
from pathlib import Path
foo = Path("C:\\foo")
bar = Path("C:\\foo\\bar")
bar.relative_to(foo)
> WindowsPath('bar')
但是,如果两条路径在同一级别上,relative_to
则不起作用。
baz = Path("C:\\baz")
foo.relative_to(baz)
> ValueError: 'C:\\foo' does not start with 'C:\\baz'
我希望结果是
WindowsPath("..\\baz")
该函数os.path.relpath
正确执行此操作:
import os
foo = "C:\\foo"
bar = "C:\\bar"
os.path.relpath(foo, bar)
> '..\\foo'
有没有办法实现os.path.relpath
using的功能pathlib.Path
?