如何使用python获取多个文件夹中的文件夹列表

时间:2018-12-28 21:34:05

标签: python

我尝试了一些代码,它们都给了我根目录文件夹或树中所有文件/文件夹的列表。我想知道如何从根目录中获得仅文件夹内的文件夹列表?

我尝试过的代码: 这为我提供了根目录中文件夹的基本列表。

(next(os.walk(root))[1])

如何从下一级获取文件夹?如果我尝试

(next(os.walk(root))[2])

这使我一直到文件。

谢谢!

1 个答案:

答案 0 :(得分:0)

os.walk() documentation中所述,os.walk()返回(dirpath, dirnames, filenames)的3元组,并作为可迭代函数。在python中,这意味着它可以用作for循环的第二个操作数,即语法

中的可迭代项
for identifier in iterable:
    [some operation with "identifer" for each element of "iterable"]

对于os.walk(),我们可以使用

轻松构造所有文件夹的列表
import os

def get_all_folders(path):
    folder_list = []
    for dirpath, dnames, fnames in os.walk(path):
        folder_list += list(dnames)
    return folder_list


print(get_all_folders(os.getcwd()))

或者,将更简洁的列表理解与itertools.chain()结合使用:

import os

def get_all_folders(path):
    return list(chain(*[dir_list for _, dir_list, _ in os.walk(path)]))


print(get_all_folders(os.getcwd()))