open() 打开文件

最后更新:2026-09-22

open() 打开文件

open() 打开文件,返回 file 对象。强烈建议用 with 语句管理。

分类内置函数
类型内置函数
Python 版本all

📝 语法

open(file, mode='r', ...)

⚙️ 参数

file 必选文件路径(str / bytes / os.PathLike)或文件描述符整数。
mode 可选打开模式:'r'/'w'/'a'/'x',可组合 'b'、'+' 等。(默认值:'r')
buffering 可选缓冲策略:0 不缓冲、1 行缓冲、大于 1 为缓冲区字节数。(默认值:-1)
encoding 可选文本编码(如 'utf-8');默认使用平台编码。(默认值:None)
errors 可选编码错误处理方式,如 'strict'/'ignore'/'replace'。(默认值:None)
newline 可选换行符处理方式;None 表示启用通用换行模式。(默认值:None)
closefd 可选file 为文件描述符时,关闭文件是否同时关闭该描述符。(默认值:True)
opener 可选自定义打开器,一个返回文件描述符的可调用对象。(默认值:None)

返回值:返回文件对象:文本模式为 TextIOWrapper,二进制模式为 BufferedIOBase 的子类。

💥 异常

▶ 示例

编辑下方代码,点击运行,在输出面板查看结果:

运行结果:

hello
💡 提示 用 with 自动关闭文件;指定 encoding 避免平台默认编码陷阱。
更多实战案例即将上线,敬请期待。

❓ 常见问题

Q不写 with 打开文件有什么风险?
A文件可能不自动关闭,句柄泄漏、写入内容未落盘;用 with open(...) as f: 会自动关闭,即使中途抛异常。
Q为什么读中文文件要传 encoding='utf-8'?
A不传则用平台默认编码(Windows 中文系统是 gbk),与 utf-8 文件不一致会抛 UnicodeDecodeError 或产生乱码;读写都建议显式指定 encoding。
Qopen() 各模式 'r'/'w'/'a'/'x' 的区别?
A'r' 只读(默认,文件不存在抛 FileNotFoundError)、'w' 写入并清空原内容(不存在则创建)、'a' 追加、'x' 排他创建(文件已存在抛 FileExistsError)。
Q二进制文件怎么打开?
Amode 加 'b':open('img.png', 'rb') 读字节、open('img.png', 'wb') 写字节;二进制模式不能传 encoding 参数。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏