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

Python新手遇文件写入报错:OSError: [Errno 9] Bad file descriptor

Python文件写入报错(Errno 9)解决办法

你遇到的OSError: [Errno 9] Bad file descriptor错误,核心原因是文件对象在写入或关闭时已处于无效状态,常见诱因是权限不足或文件被其他程序占用。手动调用close()时,若前面的write()已因权限问题失败,无效的文件对象会触发二次报错;不调用close()的话,Python不会自动刷新缓冲区,导致内容无法写入磁盘。

最优解决写法

直接用Python的with语句,它会自动处理文件的打开、关闭和异常,无需手动调用close():

text = "Sample text."
with open("file.txt", "w") as saveFile:
    saveFile.write(text)

排查与调试步骤

  • 确认写入权限:先打印当前脚本运行的目录,检查是否能手动创建文件:
    import os
    print(os.getcwd())
    
    如果当前目录无写入权限,换个有权限的路径(比如个人文档文件夹)。
  • 检查文件占用:确认file.txt没有被其他程序(如记事本、编辑器)打开,占用状态下无法写入。
  • 使用绝对路径:避免相对路径的歧义,直接指定明确的文件路径:
    text = "Sample text."
    # 替换为你的有效绝对路径
    with open("C:/Users/Tony/Documents/file.txt", "w") as saveFile:
        saveFile.write(text)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 11:48:07