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

Python 3.10.6中os.path.exists()异常行为原因咨询

问题原因分析

先看你给出的代码:

#!/usr/bin/env python3
import os

myFile = True
if os.path.exists(myFile):
    print("True exists !!")

问题的核心原因如下:

  • Python里的布尔值True是整数类型的子类,它的实际数值为1
  • os.path.exists()函数在接收整数参数时,不会将其当作文件名解析,而是会把它当成文件描述符处理
  • 在类Unix系统(比如你使用的Linux Mint)中,文件描述符1对应的是标准输出(stdout),这个描述符始终处于打开状态,因此os.path.exists(1)必然返回True,触发了打印语句

简单来说就是你把布尔值True传给了本该接收文件名的函数,它被识别成了标准输出的文件描述符,而这个描述符肯定存在,所以代码就输出了那句提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 16:10:10