我尝试了一些代码,它们都给了我根目录文件夹或树中所有文件/文件夹的列表。我想知道如何从根目录中获得仅文件夹内的文件夹列表?
我尝试过的代码: 这为我提供了根目录中文件夹的基本列表。
(next(os.walk(root))[1])
如何从下一级获取文件夹?如果我尝试
(next(os.walk(root))[2])
这使我一直到文件。
谢谢!
答案 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()))