获得相当于"查找"的最简单方法.在python?

sta*_*tti 8 python filesystems file

使用python在文件夹中获取完整的递归文件列表的最简单方法是什么?我知道os.walk(),但只是获取所有文件的未过滤列表似乎有点过分.它真的是唯一的选择吗?

Ble*_*der 14

没有什么可以阻止你创建自己的功能:

import os

def listfiles(folder):
    for root, folders, files in os.walk(folder):
        for filename in folders + files:
            yield os.path.join(root, filename)
Run Code Online (Sandbox Code Playgroud)

您可以像这样使用它:

for filename in listfiles('/etc/'):
    print filename
Run Code Online (Sandbox Code Playgroud)


Mar*_*ers 7

os.walk()无论如何都不是矫枉过正.它可以快速生成您的文件和目录列表:

files = [os.path.join(dirpath, filename)
    for (dirpath, dirs, files) in os.walk('.')
    for filename in (dirs + files)]
Run Code Online (Sandbox Code Playgroud)

您可以将其转换为生成器,一次只处理一个路径并在内存上安全.