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

Windows下Pathlib.glob扫描exFAT盘遇长路径报错该如何忽略?

结论

仅使用pathlib原生功能可以解决,但要求Python版本≥3.11,低于该版本无法实现。


具体实现方案

你遇到的FileNotFoundError确实是Windows默认260字符路径长度限制导致的,Python 3.11为Path.glob()、Path.rglob()新增了on_error参数,专门用来处理遍历过程中的权限不足、路径无法识别等异常,不需要自行实现目录遍历逻辑。

示例代码

from pathlib import Path

# 定义异常处理回调,返回None即可跳过错误项继续遍历
def ignore_scan_error(func):
    return None

def scan_drive(drive_letter):
    # 路径前加\\?\前缀可直接绕过Windows 260字符路径限制,不需要修改系统配置
    drive_path = Path(f"\\\\?\\{drive_letter}:\\")
    # 传入on_error参数处理异常
    for f in drive_path.glob("**/*", on_error=ignore_scan_error):
        # 业务逻辑
        print(f.name)

result = scan_drive('E')

低版本Python说明

如果你的Python版本低于3.11,pathlib的glob方法未提供异常处理入口,无法仅通过pathlib本身功能跳过遍历异常,只能自行实现递归遍历逻辑,或者升级Python版本到3.11及以上。

内容的提问来源于stack exchange,提问作者576i

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:57:02