关于python:如何获取子目录名称列表

How to get list of subdirectories names

本问题已经有最佳答案,请猛点这里访问。

有一个目录包含文件夹以及不同格式的文件。

1
2
import os
my_list = os.listdir('My_directory')

将返回文件和文件夹名称的完整内容。例如,我可以使用endswith('.txt')方法只选择文本文件名,但如何获得只包含文件夹名的列表?


组装列表时,尝试检查目录。

1
2
import os
output = [dI for dI in os.listdir('foo') if os.path.isdir(os.path.join('foo',dI))]

您可以使用os.walk

1
2
for i,j,y in os.walk('.'):
    print(i)


这应该有效:

1
my_dirs = [d for d in os.listdir('My_directory') if os.path.isdir(os.path.join('My_directory', d))]

os.walk已经将文件和文件夹拆分成不同的列表,并以递归方式工作:

1
2
3
for root,dirs,_ in os.walk('.'):
    for d in dirs:
        print os.path.join(root,d)

只需对os.listdir返回的结果使用os.path.isdir,如:

1
2
def listdirs(path):
    return [d for d in os.listdir(path) if os.path.isdir(d)]