将os.walk()保存在变量中

时间:2013-03-01 19:48:27

标签: python os.walk

我可以以某种方式将os.walk()的输出保存在变量中吗?我试过了 basepath, directories, files = os.walk(path) 但它不起作用。我想继续目录的文件和一个特定的子目录。这有点可能吗?感谢

2 个答案:

答案 0 :(得分:2)

os.walk()返回一个生成器,该生成器将从其启动的初始路径连续返回 all 文件/目录树。如果您只想处理目录和一个特定子目录中的文件,则应混合使用os.listdir()以及os.path.isfile()os.path.isdir()的混合来获得所需内容。

这样的事情:

def files_and_subdirectories(root_path):
    files = []
    directories = []
    for f in os.listdir(root_path):
        if os.path.isfile(f):
            files.append(f)
        elif os.path.isdir(f):
            directories.append(f)
    return directories, files

并像这样使用它:

directories,files = files_and_subdirectories(path)

答案 1 :(得分:1)

  

我想继续目录的文件和一个特定的文件   子目录。这有点可能吗?

如果你想要的只是尝试

[e for e in os.listdir('.') if os.path.isfile(e)] + os.listdir(special_dir)