如何获取整个驱动器中所有文件夹的列表



如何返回驱动器中的所有文件夹?

os.listdir(dir)将是一个候选者,但它只返回直接的子目录,我想要所有的子目录。

我看到另一个堆栈溢出问题说要使用[x[0] for x in os.walk(directory)]https://stackoverflow.com/a/973488/18323484但我不知道如何使用它。

os.walk为遍历的每个目录生成三个-tuple,形式为(currentdir, containeddirs, containedfiles)。此列表组件:

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

只是忽略每个目录的内容,只累积它枚举的目录。如果使用解包(对于你不关心的东西使用_(编写,它会稍微好一点/更自我记录,例如:

dirs = [curdir for curdir, _, _ in os.walk(directory)]

但它们都是等价的。要使其成为整个驱动器的列表,只需提供驱动器的根作为os.walkdirectory参数,例如,对于Windows:

c_drive_dirs = [curdir for curdir, _, _ in os.walk('C:\')]

或对于非Windows:

alldirs = [curdir for curdir, _, _ in os.walk('/')]

最新更新