python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python:报错[Errno 2]No such file or directory

如何解决Python:报错[Errno 2]No such file or directory问题

作者:T-I-M

介绍了Python文件读取操作时常见的错误原因及解决方法,主要错误原因包括路径拼写错误、工作目录与相对路径不匹配以及文件不存在,解决方法有使用绝对路径和动态获取脚本路径,其他注意事项包括验证文件路径与名称、理解工作目录与相对路径

Python报错[Errno 2]No such file or directory

问题现象

Python文件读取操作时,系统无法找到指定路径的文件或目录。其核心原因可归结为以下三点:

  1. 路径拼写错误(如大小写不一致、特殊字符未转义)
  2. 工作目录与相对路径不匹配(常见于IDE或脚本调用场景)
  3. 文件实际不存在(包括扩展名错误或文件被移动)

其中,第二种为最常见的原因。主要为项目中调用.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.验证文件路径与名称

import os
print(os.path.exists("your_file_path"))  # 返回True则路径有效

2.理解工作目录与相对路径

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文