协慌网

登录 贡献 社区

获取当前目录中所有子目录的列表

有没有办法在 Python 中返回当前目录中所有子目录的列表?

我知道您可以使用文件来执行此操作,但是我需要获取目录列表。

答案

您是指直接子目录,还是树下的每个目录?

无论哪种方式,您都可以使用os.walk来执行此操作:

os.walk(directory)

将为每个子目录生成一个元组。该三元组中的第一个条目是目录名称,因此

[x[0] for x in os.walk(directory)]

应该递归地给你所有的子目录。

请注意,元组中的第二个条目是该条目的子目录列表的第一个位置,因此您可以改用它,但是不太可能为您节省很多。

但是,您可以使用它来为您提供直接的子目录:

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

os.listdiros.path.isdir查看已发布的其他解决方案,包括 “ 如何在 Python 中获取所有直接子目录” 中的解决方案。

您可以只使用glob.glob

from glob import glob
glob("/path/to/directory/*/")

别忘了*后面的/

import os

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