代码之家  ›  专栏  ›  技术社区  ›  tarabyte

如何使用Pathlib检查一条路径是否位于另一条路径中?

  •  0
  • tarabyte  · 技术社区  · 3 年前

    我正试图找到一种可读的方法来检查一条路径是否位于跨越多个级别的另一条路径内。我可以查看直系父母的情况,但目前还不能超过这个范围。

    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

    1 回复  |  直到 3 年前
        1
  •  1
  •   Nelewout    3 年前

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

    使用示例路径,这非常简单:

    path1 in path2.parents