【问题标题】:How do I recursively iterate over just the files in a directory using pathlib?如何使用 pathlib 递归迭代目录中的文件?
【发布时间】:2020-01-14 12:56:06
【问题描述】:

我有一个目录,我想获取其中的所有文件(没有目录),以及它的任何子目录中的所有文件等等。

【问题讨论】:

    标签: python pathlib


    【解决方案1】:

    使用globrglobrecursively iterate over both files and directories,然后跳过任何不返回TruePath.is_file()

    from pathlib import Path
    
    def iter_files(path):
        for file_or_directory in path.rglob("*"):
            if file_or_directory.is_file():
                yield file_or_directory
    

    然后你可以像这样使用那个生成器

    my_path = Path("/some/path/here")
    
    for my_file in iter_files(my_path):
        do_whatever(my_file)
    

    您可以在列表推导中使用相同的原则

    files = [path for path in my_path.rglob("*") if path.is_file()]
    

    【讨论】:

      猜你喜欢
      • 2018-10-15
      • 2016-11-13
      • 2012-11-06
      • 2018-11-15
      • 1970-01-01
      • 2013-12-01
      • 2013-08-18
      • 2017-05-17
      相关资源
      最近更新 更多