我正试图找到一种可读的方法来检查一条路径是否位于跨越多个级别的另一条路径内。我可以查看直系父母的情况,但目前还不能超过这个范围。
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 检查绝对路径?
startwith
https://docs.python.org/3/library/pathlib.html
路径实例具有 parents 属性,该属性包含所有祖先的序列。通过测试一条路径是否是另一条路径的祖先,可以测试该路径是否“在另一条路径中”。
parents
使用示例路径,这非常简单:
path1 in path2.parents