python获取目录的的子目录

python获取目录的的子目录

作者:Elara发布时间:2026-03-28 23:19阅读时长:15 分钟阅读次数:11
常见问答
Q
如何使用Python列出指定目录下的所有子目录?

我想用Python程序获取某个目录中的所有子目录,该怎么做?有哪些常用的方法?

A

使用os和os.path模块获取子目录

可以通过os模块中的os.listdir()函数列出目录中的所有项,再通过os.path.isdir()判断是否为子目录。例如:

import os
path = '你的目录路径'
subdirs = [name for name in os.listdir(path) if os.path.isdir(os.path.join(path, name))]
print(subdirs)

这样即可得到指定目录下的所有子目录名称列表。

Q
Python如何递归获取目录下所有子目录?

有没有方法可以获取某目录及其所有子目录中的子目录,也就是递归遍历获取所有子目录?

A

使用os.walk()实现递归获取所有子目录

os.walk()是获取目录树的好工具,它会递归遍历指定目录,返回3个元素:当前路径、子目录列表和文件列表。可以通过遍历每一级的子目录列表来收集所有子目录。示例代码:

import os
path = '你的目录路径'
all_subdirs = []
for root, dirs, files in os.walk(path):
    for dir_name in dirs:
        all_subdirs.append(os.path.join(root, dir_name))
print(all_subdirs)

这样就能递归得到所有子目录的完整路径了。

Q
Python获取目录子目录时如何排除特定目录?

在获取目录下的子目录时,怎样忽略或排除掉某些不想要的子目录?

A

通过条件判断过滤子目录名称

在列表推导或遍历时,可以增加条件过滤掉特定目录名,比如:

import os
path = '你的目录路径'
exclude = {'排除目录1', '排除目录2'}
subdirs = [d for d in os.listdir(path)
           if os.path.isdir(os.path.join(path, d)) and d not in exclude]
print(subdirs)

这样就能排除掉不需要的子目录,获取符合要求的目录列表。