如何获取整个驱动器中的所有文件夹列表?
获取驱动器中的所有文件夹
核心解决方案:使用os.walk()遍历所有层级
os.walk()是Python标准库中专门用于递归遍历目录树的工具,它会自动遍历指定目录及其所有子目录,完美解决os.listdir()只能获取直接子目录的问题。
你看到的[x[0] for x in os.walk(directory)]是列表推导式写法,直接提取os.walk()返回的每一组结果中的目录路径,快速生成全量文件夹列表。具体使用方法如下:
1. 基础用法代码示例
import os # 替换为你的目标驱动器路径,Windows下注意用原始字符串(加r)避免转义问题 drive_path = r"C:\\" # 用列表推导式收集所有层级的文件夹路径 all_folders = [x[0] for x in os.walk(drive_path)] # 打印结果(按需处理) for folder in all_folders: print(folder)
2. 更直观的循环写法(等价于列表推导式)
如果觉得列表推导式不够好理解,用普通循环实现完全一样的效果:
import os drive_path = r"C:\\" all_folders = [] # os.walk每次迭代返回三元组:(当前目录路径, 当前目录下的子目录列表, 当前目录下的文件列表) for root_dir, sub_dirs, files in os.walk(drive_path): # 把当前遍历到的目录路径加入列表 all_folders.append(root_dir) # 输出结果 for folder in all_folders: print(folder)
3. 处理权限问题(可选)
遍历整个驱动器时,可能遇到系统目录权限不足的情况,可添加异常处理跳过报错:
import os drive_path = r"C:\\" all_folders = [] for root_dir, sub_dirs, files in os.walk(drive_path): try: all_folders.append(root_dir) except PermissionError: print(f"无权限访问目录: {root_dir}") continue
内容的提问来源于stack exchange,提问作者Oskar
相关产品推荐
相关产品推荐

