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

使用pathlib递归地遍历所有子目录

  •  17
  • Oblomov  · 技术社区  · 6 年前

    我怎么用 pathlib 递归地遍历给定目录的所有子目录?

    p = Path('docs')
    for child in p.iterdir(): child
    

    似乎只遍历给定目录的直接子目录。

    我知道这是可能的 os.walk() glob ,但我想使用pathlib,因为我喜欢使用path对象。

    3 回复  |  直到 6 年前
        1
  •  18
  •   etarion    6 年前

    你可以使用 glob A方法 Path 对象:

    p = Path('docs')
    for i in p.glob('**/*'):
         print(i.name)
    
        2
  •  15
  •   pylang    5 年前

    使用 Path.rglob (代替领先 ** 在里面 Path().glob("**/*") ):

    path = Path("docs")
    for p in path.rglob("*"):
         print(p.name)
    
        3
  •  3
  •   Sijan Bhandari    6 年前

    pathlib glob 方法,其中我们可以提供模式作为参数。

    例如: Path('abc').glob('**/*.txt') -它将查找当前文件夹 abc 以及所有其他子目录递归地查找所有 txt 文件夹。