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

使用os.write时出现[Errno 9] Bad file descriptor错误的原因是什么?

问题原因与解决办法

报错根源分析

你碰到的OSError: [Errno 9] Bad file descriptor,核心是文件描述符无效,问题出在两个关键点:

  • 路径转义错误:Windows路径里的\在Python字符串中属于转义字符,直接写"d:\Coding\Python\OS module practise.txt"会让路径解析出错,系统找不到正确的文件位置。
  • 打开模式不全:仅用os.O_WRONLY打开文件时,如果目标文件不存在,os.open会直接失败,返回无效的文件描述符;就算文件存在,也可能因权限或模式不匹配导致写入失败。

修正后的代码

import os

# 用原始字符串避免路径转义,同时补充必要的打开标志
file_path = r"d:\Coding\Python\OS module practise.txt"
# O_WRONLY: 只写模式; O_CREAT: 文件不存在则创建; O_TRUNC: 文件存在则清空原有内容
g = os.open(file_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC)
os.write(g, b"Hi")
os.close(g)  # 写完必须关闭文件描述符,释放系统资源

关键细节说明

  • 路径可以用原始字符串(加前缀r),或者把\替换成\\,确保系统能正确识别路径。
  • os.O_CREAT是必须的,否则文件不存在时打开操作直接失败;如果想追加内容而非清空,可以把os.O_TRUNC换成os.O_APPEND。
  • 务必调用os.close(g),否则会造成系统资源泄漏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:09:57