python – os.walk没有隐藏的文件夹

我需要列出包含文件夹中的目录路径的所有文件。我试图使用os.walk,这显然是完美的解决方案。

但是,它也列出了隐藏的文件夹和文件。我希望我的应用程序不会列出任何隐藏的文件夹或文件。有没有什么标志可以用来使它不产生任何隐藏的文件?

跨平台对我来说不是很重要,没关系,只适用于linux(。* pattern)

不,没有os.walk()的选项可以跳过这些。你需要自己去做(这很简单):

for root, dirs, files in os.walk(path):
    files = [f for f in files if not f[0] == '.']
    dirs[:] = [d for d in dirs if not d[0] == '.']
    # use files and dirs

注意dirs [:] =片分配;我们正在替换dirs中的元素(而不是由dirs引用的列表),以便os.walk()不会处理已删除的目录。

这仅在您从documentation of os.walk()中将自上而下的关键字参数保持为True时才起作用:

When topdown is True, the caller can modify the dirnames list in-place (perhaps using del or slice assignment), and walk() will only recurse into the subdirectories whose names remain in dirnames; this can be used to prune the search, impose a specific order of visiting, or even to inform walk() about directories the caller creates or renames before it resumes walk() again.

翻译自:https://stackoverflow.com/questions/13454164/os-walk-without-hidden-folders

转载注明原文:python – os.walk没有隐藏的文件夹