You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python脚本输出系统所有盘符下名为Desktop的文件夹路径列表

全盘符检索Desktop文件夹路径Python实现方案

实现核心分为两步:

  • 遍历所有可能的盘符,筛选出当前已挂载的可用盘符
  • 对每个可用盘符递归遍历所有子目录,匹配名称为Desktop的文件夹,收集所有符合条件的路径

完整可运行代码

import os

def get_all_mounted_drives():
    """获取Windows系统下所有已挂载的盘符"""
    drives = []
    # 遍历A到Z所有盘符,和你提到的bat遍历逻辑完全一致
    for drive_letter in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
        drive_path = f"{drive_letter}:\\"
        if os.path.exists(drive_path):
            drives.append(drive_path)
    return drives

def find_desktop_folders():
    """检索所有盘符下的Desktop文件夹路径"""
    target_name = "Desktop"
    result = []
    drives = get_all_mounted_drives()
    
    for drive in drives:
        # 遍历盘符下所有目录,遇到无权限目录自动跳过
        for root, dirs, files in os.walk(drive, onerror=lambda x: None):
            # 只匹配文件夹名称为Desktop的项,排除同名文件
            if os.path.basename(root) == target_name:
                result.append(root)
    return result

if __name__ == "__main__":
    desktop_paths = find_desktop_folders()
    print("所有Desktop文件夹路径如下:")
    for path in desktop_paths:
        print(path)

关键说明

  • 盘符检测逻辑和你提供的bat代码思路一致,不会漏检已挂载的移动硬盘、额外分区等设备
  • 用os.walk实现自动递归遍历所有层级目录,解决了你之前只能单层遍历的问题
  • 代码中加入了onerror=lambda x: None参数,遇到系统无权限访问的目录会自动跳过,不会导致脚本崩溃
  • 匹配逻辑会返回所有符合条件的路径,而非仅首个匹配项

可选优化:如果需要加快遍历速度,可以在os.walk循环中添加过滤逻辑,跳过不可能存在Desktop的系统级目录,示例如下:

for root, dirs, files in os.walk(drive, onerror=lambda x: None):
    # 跳过不需要遍历的系统目录,大幅提升遍历速度
    skip_dirs = {'System Volume Information', '$Recycle.Bin', 'Program Files', 'Windows', 'Program Files (x86)'}
    dirs[:] = [d for d in dirs if d not in skip_dirs]
    if os.path.basename(root) == target_name:
        result.append(root)

内容的提问来源于stack exchange,提问作者Sky Net

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 20:15:08