如何使用 Pathlib 检查一个路径是否在另一个路径中?

tar*_*yte 4 python-3.x pathlib

我正在尝试找到一种可读的方法来检查一条路径是否位于跨多个级别的另一条路径内。我可以检查直接父母,但到目前为止还不能超越。

import pathlib
path1 = pathlib.Path('/a/b')
path2 = pathlib.Path('/a/b/c/d')
path2.parent == path1  # <-- this is False, expected.
path2 in path1  # <-- this is False, UNEXPECTED.
Run Code Online (Sandbox Code Playgroud)

如何检查一条路径是否存在于另一条路径中?

或者是转向字符串比较和startwith绝对路径检查的最佳选择?

https://docs.python.org/3/library/pathlib.html

N. *_*uda 6

路径实例有一个parents属性,其中包含所有祖先的序列。您可以通过测试一条路径是否是另一条路径的祖先来测试它是否“在另一条路径中”。

使用您的示例路径,这很简单:

path1 in path2.parents
Run Code Online (Sandbox Code Playgroud)