Python使用open函数w+模式无法创建新文件报FileNotFoundError如何排查?
FileNotFoundError 问题排查思路
- 校验父目录是否存在
Python 的open()函数使用w+模式时,仅会自动创建目标文件,不会递归创建不存在的多级父目录。你可以在终端执行ls /Users/root/test确认该目录是否存在,若不存在有两种解决方案:- 手动在访达中创建
/Users/root/test目录 - 代码中提前创建父目录,示例如下:
- 手动在访达中创建
import os # 先创建父目录,exist_ok=True 表示目录已存在时不报错 os.makedirs("/Users/root/test", exist_ok=True) with open("/Users/root/test/test.txt", "w+") as f: f.write("test")
- 核对路径用户名拼写
你运行脚本的所在路径为/Users/root1/PycharmProjects/...,说明当前系统登录用户大概率为root1,需确认/Users/root/目录是否真实存在,可在终端执行whoami查看当前用户名,修正路径中拼写错误的部分。 - 校验目录访问权限
即使路径存在,若当前执行Python脚本的用户没有/Users/root/test目录的读、执行权限,也可能触发该类报错。可在终端执行ls -ld /Users/root/test查看目录的权限、属主信息,确保当前用户拥有该目录的访问权限。 - 检查路径是否有隐藏特殊字符
确认路径中没有误输入的空格、不可见Unicode字符、中文符号等问题,可直接复制路径到终端执行cd 粘贴的路径,验证是否能正常进入目标目录。
内容的提问来源于stack exchange,提问作者John Harrington
相关产品推荐
相关产品推荐

