Windows环境下Python无法写入文件的问题排查求助
问题描述
环境信息
- 操作系统:Microsoft Windows [Version 10.0.19045.6456](未运行OneDrive)
- Python版本:3.14.0
测试代码
使用pathlib库尝试写入文件,代码如下:
from pathlib import Path print("trying to write to file") cwd = Path.cwd() print(f"cwd: {cwd}") destname = Path("ccc.txt") print(f"destname is {destname}") destpath = cwd / destname print(f"destpath is {destpath}") destpath.write_text("daa daa dah dah", encoding="utf-8") #with destpath.open(mode="w", encoding="utf-8") as x: # print(f"x is {x}") # x.write("oh boy oh boy") print("finished writing to file")
报错信息
终端执行报错:
FileNotFoundError: [Errno 2] No such file or directory
目标路径为当前工作目录下的ccc.txt。
已排查项
- 已通过
cwd()生成绝对路径并验证 - 目标文件夹存在
- Python运行用户为文件夹所有者(已通过
whoami确认) - 未运行OneDrive
- 尝试过
os库与pathlib两种方式 - 试过
with open语法同样失败 - 文件扩展名未隐藏
- 更换过其他文件夹仍无法写入
已尝试网上同类问题的解决方案但无效,求助:为何Windows禁止Python写入文件?是否需修改注册表解决?
排查与解决方向
检查目录权限的实际应用
虽已确认用户是文件夹所有者,但Windows权限继承可能异常。右键目标目录→属性→安全→编辑,确认当前用户拥有写入、修改权限,且权限已应用到子文件和文件夹。排查安全软件拦截
Windows Defender或第三方杀毒软件可能阻止Python进程写入文件。临时关闭实时保护后测试代码,若能正常写入,需将Python.exe或脚本所在目录添加到安全软件信任列表。验证路径合法性
Windows默认限制文件路径长度为260字符,若当前工作目录路径过长,会导致无法创建文件。可将脚本移至短路径目录(如C:\test)测试;同时检查路径是否包含空格、非ASCII字符,改用纯英文路径尝试。以管理员身份运行进程
打开任务管理器确认Python进程的运行用户,若为系统账户则会有权限限制。尝试以管理员身份启动命令提示符/终端,再执行Python脚本。注册表调整长路径支持(谨慎操作)
若为路径长度限制问题,可修改注册表开启长路径支持:- 运行
regedit打开注册表编辑器 - 导航至
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem - 找到
LongPathsEnabled,将其值改为1(不存在则新建DWORD(32位)值) - 重启电脑后生效
- 运行
内容的提问来源于stack exchange,提问作者scorpdaddy
相关产品推荐
相关产品推荐

