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
相关产品推荐
相关产品推荐

