You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中[Errno 2]错误含义及显示差异原因咨询

关于FileNotFoundError中[Errno 2]的解释

1. [Errno 2]的来源

[Errno 2]是操作系统层面的错误代码,对应"文件或目录不存在"的系统错误。当你调用Python的文件操作函数(比如open())时,Python会底层调用操作系统的文件系统API。如果操作系统返回"找不到文件"的错误,Python会捕获这个系统错误码(即Errno 2),并将其嵌入到FileNotFoundError的提示信息中,同时还会附带操作系统返回的错误描述和出错的文件名。

2. 手动触发异常无Errno标识的原因

当你执行raise FileNotFoundError("This is a test")时,只是给异常传递了自定义字符串消息,并没有设置errno参数。这种情况下,Python不会自动添加系统错误码标识。如果想要手动生成带Errno的异常,需要显式传入错误码参数:

raise FileNotFoundError(2, "This is a test", "tlesting.py")

此时触发的异常会显示:
FileNotFoundError: [Errno 2] This is a test: 'tlesting.py'

3. 与Python版本和操作系统的关系

  • 操作系统:Errno是操作系统定义的错误码体系,不同OS的Errno编号可能有差异,但Errno 2在绝大多数类Unix系统(Linux、macOS)和Windows中都对应"文件不存在",所以这个编号在常见系统中是一致的。其他Errno值可能因OS不同而含义不同。
  • Python版本:在Python 3.3之前,没有专门的FileNotFoundError,这类文件系统错误会以OSError的形式抛出,同样会携带Errno 2。从Python 3.3开始,FileNotFoundError成为OSError的子类,专门用于捕获文件不存在的错误,并且在由系统操作触发时会自动填充Errno、错误描述等信息。

内容的提问来源于stack exchange,提问作者5rod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 11:19:56