如何解决Python:报错[Errno 2]No such file or directory问题
作者:T-I-M
介绍了Python文件读取操作时常见的错误原因及解决方法,主要错误原因包括路径拼写错误、工作目录与相对路径不匹配以及文件不存在,解决方法有使用绝对路径和动态获取脚本路径,其他注意事项包括验证文件路径与名称、理解工作目录与相对路径
Python报错[Errno 2]No such file or directory
问题现象
Python文件读取操作时,系统无法找到指定路径的文件或目录。其核心原因可归结为以下三点:
- 路径拼写错误(如大小写不一致、特殊字符未转义)
- 工作目录与相对路径不匹配(常见于IDE或脚本调用场景)
- 文件实际不存在(包括扩展名错误或文件被移动)
其中,第二种为最常见的原因。主要为项目中调用.py文件中存在相对路径,而在Pycharm中运行与终端中运行可能结果不同,一个报错一个不报错。
快速解决方案
1.使用绝对路径
直接指定文件的完整路径(适用于固定环境):
with open("/home/user/project/data/file.txt") as f: # Linux示例 pass
注意Windows路径需处理反斜杠转义(如r"C:\Users\file.txt"
或双反斜杠)。
2.动态获取脚本所在目录(推荐)
通过__file__
属性定位脚本的真实路径,避免工作目录干扰:
import os # 当前文件的父目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 当前文件的父目录的父目录(我的此处为项目目录) project_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 根据自己的需求选择 file_path = os.path.join(script_dir, "data/file.txt") # 或者 file_path = os.path.join(project_dir, "data/file.txt")
此方法在多级目录项目中尤为可靠。
其他原因排查
1.验证文件路径与名称
- 检查路径字符串的拼写(包括英文冒号、斜杠方向等),例如
data\file.txt
在Linux中需改为data/file.txt
1 - 确认文件扩展名是否匹配(如
.txt
与.csv
的区别) - 使用
os.path.exists()
函数验证路径是否存在:
import os print(os.path.exists("your_file_path")) # 返回True则路径有效
2.理解工作目录与相对路径
- 执行脚本时,系统以当前工作目录为相对路径起点,而非脚本所在目录3
- 通过
os.getcwd()
获取当前工作目录,若与预期不符: - 在IDE(如VSCode)中设置工作目录(调试配置项)
- 使用
os.chdir()
动态修改工作目录
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- Python成功解决读文件出现:IOError: [Errno 0] Error的错误
- Python报错:OSError: [Errno 22] Invalid argument解决方案及应用实例
- 解决python训练模型报错:BrokenPipeError: [Errno 32] Broken pipe
- 解决Python获取文件提示找不到指定路径can‘t open file 'area.py':[Errno 2] No such file or directory
- 解决Python保存文件名太长OSError: [Errno 36] File name too lon
- python错误提示:Errno 2] No such file or directory的解决方法