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

How to check whether a path is in another path using 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.

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

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

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

路径实例有一个 parents 属性,其中包含所有祖先的序列。您可以通过测试一条路径是否是另一条路径的祖先来测试一条路径是否为 'in another path'。

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

path1 in path2.parents