使用 pathlib 递归获取除隐藏文件之外的所有文件

recursively get all files except the hidden ones with pathlib

我想使用 pathlib 递归遍历给定路径的所有 文件 ,除了那些隐藏的或隐藏目录中的文件。例如,来自

|
|- a.txt
|- .b.txt
|- a/
|  |- c.txt
|  |- .d.txt
|  +- c/
|     +- e.txt
|- .b/
   +- f.txt

我想得到

a.txt
a/c.txt
a/c/e.txt

有什么提示吗?

你可以这样做:

from pathlib import Path

def non_hidden_files(root):
    for path in root.glob('*'):
        if not path.name.startswith('.'):
            if path.is_file():
                yield str(path)
            else:
                yield from non_hidden_files(path)

print(*non_hidden_files(Path('.')))