Python open() 函数参数详解与文件模式对照表

Evan
Evan
发布时间:2026-10-13| 5人浏览过
原创

本文详解 Python 中 open() 函数的完整语法与核心参数。重点解析 file、mode、encoding 等关键配置,并提供包含 r, w, a, b, + 等组合模式的完整对照表,帮助开发者准确控制文件读写行为与缓冲区设置。

Python open() 函数基础

open() 方法

在 Python 中,open() 函数用于打开指定文件并返回一个文件对象。这是进行所有文件处理操作的基础步骤。若指定的文件路径无效或权限不足导致无法打开,系统将抛出 OSError 异常。

重要提示:使用 open() 打开文件后,务必确保调用 close() 方法正确关闭文件对象,以释放系统资源并防止数据丢失。

open() 函数最常用的调用形式包含两个主要参数:文件名(file)和打开模式(mode)。


open(file, mode='r')

其完整的语法定义如下:


open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

open() 参数详解

各参数具体说明如下:

file:必需参数,指定要打开的文件路径,支持相对路径或绝对路径。

mode:可选参数,定义文件的打开模式,决定读写权限及行为。

buffering:可选参数,用于设置文件缓冲策略,如行缓冲或全缓冲。

encoding:可选参数,指定文本文件的编码格式,通常推荐使用 utf8。

errors:可选参数,定义编码或解码错误时的处理级别。

newline:可选参数,控制换行符的通用处理机制。

closefd:可选参数,布尔值,决定当传入的 file 参数是文件描述符时是否关闭底层文件描述符。

mode 参数支持以下具体模式组合:

文件打开模式对照表

模式 描述
t 文本模式 (默认)。
x 写模式,新建一个文件,如果该文件已存在则会报错。
b 二进制模式。
+ 打开一个文件进行更新(可读可写)。
U 通用换行模式(不推荐)。
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。