简体   繁体   English

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

[英]recursively get all files except the hidden ones with pathlib

I would like to use pathlib to recursively iterate over all files of a given path, except those which are hidden or are in hidden directories.我想使用pathlib递归迭代给定路径的所有文件,除了那些隐藏或在隐藏目录中的文件。 Eg, from例如,从

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

I would like to get我想得到

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

Any hints?任何提示?

You could do something like this:你可以这样做:

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('.')))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM