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'
有没有一种使用 pathlib.Path
实现 os.path.relpath
功能的方法?
os.path.relpath
:( ... 似乎pathlib
模块并没有被考虑作为os.path
的替代品 :(. 或者你找到了一个只使用pathlib
的解决方案吗? - Ciprian Tomoiagă