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

为何简单Python代码执行时出现Bad file descriptor错误?

OSError: [Errno 9] Bad file descriptor 调用file.close()时出错的排查(Python 3.11.4)

问题代码

# Python 3.11.4

file = open('pe.txt','w')
file.write("que")
file.close()

执行这段代码时,file.close()抛出错误:OSError: [Errno 9] Bad file descriptor,已知pe.txt具备读写权限且未被其他程序占用。

可能的原因

  • 重复调用close():如果这段代码被循环执行、函数重复调用,或者在其他未展示的逻辑里又调用了一次file.close(),第一次close后文件描述符已经被释放,第二次调用就会触发这个错误。哪怕你贴的代码只有一次close,也要检查是否有隐式的重复close操作。
  • 文件对象被意外覆盖:在write和close之间,可能有未展示的代码修改了file变量(比如file = None、重新赋值成其他对象),导致原来的文件对象引用丢失,调用close时操作的已经不是有效的文件描述符。
  • 系统文件描述符耗尽:当系统打开的文件描述符总数达到上限时,哪怕open看起来成功了,后续操作也可能触发描述符失效的错误。可以用ulimit -n(Linux系统)查看当前系统的文件描述符上限,确认是否达到阈值。
  • 磁盘异常:虽然文件有读写权限,但如果磁盘已满、出现IO故障,可能导致write操作后文件描述符被系统强制回收,后续close时就会报错。可以检查磁盘剩余空间和系统日志确认。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 21:30:10