Windows10 Python3.9 os.makedirs在Documents目录CMD/VSCode运行报错
问题原因
这个异常是Windows Defender的受控文件夹访问功能导致的:
- 该功能属于勒索软件防护模块的一部分,默认会保护文档、图片、桌面等用户核心目录,只有加入白名单的应用才有权限写入这些目录
- 你当前使用的IDLE已经被加入允许列表,而CMD、VS Code对应的程序不在白名单内,所以访问被拦截
- 系统拦截访问时底层返回的错误码为2(路径不存在),所以Python不会抛出权限类错误,而是你看到的
FileNotFoundError - 非Documents目录不受该规则限制,所以代码运行正常
解决方法
方法1:将相关应用加入受控文件夹访问允许列表(推荐)
- 打开Windows设置 → 隐私和安全性 → Windows安全中心 → 病毒和威胁防护 → 勒索软件防护 → 管理勒索软件防护
- 点击「允许应用通过受控文件夹访问」
- 点击「添加允许的应用」→ 「最近阻止的应用」,依次添加被拦截的程序即可:
- 必须添加你实际使用的Python解释器路径,示例对应路径为
C:\Users\my account\AppData\Local\Programs\Python\Python39\python.exe - 按需添加CMD、PowerShell、VS Code主程序、VS Code终端对应的程序路径
- 必须添加你实际使用的Python解释器路径,示例对应路径为
方法2:临时关闭受控文件夹访问测试
如果仅做临时验证,可以先关闭该功能,确认问题解决后再用方法1配置白名单即可。
额外优化建议
调用os.makedirs时建议加上exist_ok=True参数,避免路径已存在时抛出异常,修改后代码如下:
import os os.makedirs('C:\\Users\\my account\\Documents\\aaaaa\\bbbb', exist_ok=True)
内容的提问来源于stack exchange,提问作者sssbbbaaa
相关产品推荐
相关产品推荐

