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

 更新时间:2025年02月25日 17:00:27   作者: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.验证文件路径与名称

  • 检查路径字符串的拼写(包括英文冒号、斜杠方向等),例如data\file.txt在Linux中需改为data/file.txt1
  • 确认文件扩展名是否匹配(如.txt.csv的区别)
  • 使用os.path.exists()函数验证路径是否存在:
import os
print(os.path.exists("your_file_path"))  # 返回True则路径有效

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

  • 执行脚本时,系统以当前工作目录为相对路径起点,而非脚本所在目录3
  • 通过os.getcwd()获取当前工作目录,若与预期不符:
  • 在IDE(如VSCode)中设置工作目录(调试配置项)
  • 使用os.chdir()动态修改工作目录

总结

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

相关文章

  • 基于Python采集爬取微信公众号历史数据

    基于Python采集爬取微信公众号历史数据

    这篇文章主要介绍了基于Python采集爬取微信公众号历史数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 跟老齐学Python之关于循环的小伎俩

    跟老齐学Python之关于循环的小伎俩

    不管是while还是for,所发起的循环,在python编程中是经常被用到的。特别是for,一般认为,它要比while快,而且也容易写(是否容易,可能因人而异,但是,执行时间快,是的确的),因此在实践中,for用的比较多点。
    2014-10-10
  • Python hashlib库数据安全加密必备指南

    Python hashlib库数据安全加密必备指南

    这篇文章主要为大家介绍了Python hashlib库数据安全加密的使用实例探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Python实现人工蜂群算法的示例代码

    Python实现人工蜂群算法的示例代码

    ABC,即人工蜂群算法(Artificial Bee Colony Algorithm),由Karaboga等人提出,这篇文章主要介绍了人工蜂群算法的概念与Python实现,感兴趣的可以了解一下
    2023-08-08
  • Python自动化测试selenium指定截图文件名方法

    Python自动化测试selenium指定截图文件名方法

    这篇文章主要介绍了Python自动化测试selenium指定截图文件名方法,Selenium 支持 Web 浏览器的自动化,它提供一套测试函数,用于支持 Web 自动化测试,下文基于python实现指定截图文件名方法,需要的小伙伴可以参考一下
    2022-05-05
  • 详细介绍pandas的DataFrame的append方法使用

    详细介绍pandas的DataFrame的append方法使用

    这篇文章主要介绍了详细介绍pandas的DataFrame的append方法使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python文本处理简单易懂方法解析

    Python文本处理简单易懂方法解析

    这篇文章主要介绍了Python文本处理简单易懂方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 15个应该掌握的Jupyter Notebook使用技巧(小结)

    15个应该掌握的Jupyter Notebook使用技巧(小结)

    这篇文章主要介绍了15个应该掌握的Jupyter Notebook使用技巧(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Python实现模拟分割大文件及多线程处理的方法

    Python实现模拟分割大文件及多线程处理的方法

    这篇文章主要介绍了Python实现模拟分割大文件及多线程处理的方法,涉及Python文件读取、分割及多线程相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • python脚本监控logstash进程并邮件告警实例

    python脚本监控logstash进程并邮件告警实例

    这篇文章主要介绍了python脚本监控logstash进程并邮件告警实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04

最新评论