python - 尝试打开某些整数或 True 作为文件时,Python 没有错误
问题描述
在 Python 3.8.5 上,我希望这样的代码会出现错误:
open(1, 'w').close()
但事实并非如此。更有趣的是,如果我运行它两次,我确实会看到一个错误:
>>> open(1, 'w').close()
>>> open(1, 'w').close()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 9] Bad file descriptor
有人可以解释这里发生了什么吗?我怀疑这与open
可以将字节对象作为file
参数的事实有关,但是为什么仅在我第二次输入无效file
参数时才记录错误?
有趣的是:True
也表现出相同的行为(不是False
),就像一些整数一样。其他的,比如2
,让我跑open(2, 'w').close()
几次。其他的,比如 100,立即给出错误。
编辑:如评论中所述,原因似乎是整数被解释为文件描述符。
解决方案
推荐阅读
- java - 滑动标签时调用API
- undefined - 绕过未定义
- python - cURL 通过终端/邮递员工作,但不能通过 shell 脚本或 Python
- c# - 使用 IQueryable 和 Linq.Expressions 速记加入?
- python-3.x - 如何画一条指示 Apriltag 方向的线?
- reactjs - 来源已被 CORS 政策在反应盖茨比中阻止
- java - 无法将 char[] 转换为 java 中的列表
- tensorflow - 如何在 Tensorflow 2.0 中连接到远程集群?
- snowflake-cloud-data-platform - 导入 4m Snowflake 2 Power BI 时出错 - 使用 ICU 使用源编码 UTF-8 转换无效输入。被拒绝的字节开始于:9273
- java - 使用 WDSL 生成 SOAP 请求和响应模板