如何使用pathlib递归地仅遍历目录中的文件?

时间:2019-09-12 15:39:39

标签: python pathlib

我有一个目录,我想在其中获取所有文件(无目录),以及其任何子目录中的所有文件,依此类推。

1 个答案:

答案 0 :(得分:0)

使用globrglobrecursively iterate over both files and directories,然后跳过所有不返回Path.is_file()True的内容

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()]