
python获取目录的的子目录
常见问答
如何使用Python列出指定目录下的所有子目录?
我想用Python程序获取某个目录中的所有子目录,该怎么做?有哪些常用的方法?
使用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)
这样即可得到指定目录下的所有子目录名称列表。
Python如何递归获取目录下所有子目录?
有没有方法可以获取某目录及其所有子目录中的子目录,也就是递归遍历获取所有子目录?
使用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)
这样就能递归得到所有子目录的完整路径了。
Python获取目录子目录时如何排除特定目录?
在获取目录下的子目录时,怎样忽略或排除掉某些不想要的子目录?
通过条件判断过滤子目录名称
在列表推导或遍历时,可以增加条件过滤掉特定目录名,比如:
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)
这样就能排除掉不需要的子目录,获取符合要求的目录列表。