Python 内建函数列表 > Python 的内置函数 open
Python 的内置函数 open()
是用于打开文件的重要函数,它提供了与文件系统交互的基本接口。该函数返回一个文件对象(file object),可用于读取、写入或追加文件内容。
函数签名
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
主要参数说明
-
file(必需):文件路径(字符串或字节对象),可以是绝对路径或相对路径
-
mode(可选):文件打开模式,默认是 ‘r’(只读)
- ‘r’:读取模式(默认)
- ‘w’:写入模式,会覆盖已有文件
- ‘x’:独占创建模式,文件已存在则报错
- ‘a’:追加模式
- ‘b’:二进制模式
- ‘t’:文本模式(默认)
- ‘+’:更新模式(可读写)
-
encoding(重要):指定文本编码格式,如 ‘utf-8’(Python 3默认)、‘gbk’ 等
典型使用示例
- 读取文本文件:
with open('example.txt', 'r', encoding='utf-8') as f:
content = f.read()
- 写入文件:
with open('output.txt', 'w') as f:
f.write('Hello, World!')
- 追加内容:
with open('log.txt', 'a') as f:
f.write('New log entry\n')
- 二进制文件操作:
with open('image.jpg', 'rb') as f:
data = f.read()
最佳实践建议
- 始终使用
with
语句,确保文件正确关闭 - 明确指定编码格式,避免跨平台问题
- 处理大文件时考虑逐行读取或分块读取
- 注意不同操作系统路径分隔符的差异
- 检查文件是否存在(os.path.exists)后再操作
常见问题
- 文件不存在时会抛出 FileNotFoundError(读取模式)
- 编码错误会抛出 UnicodeDecodeError
- 权限不足会抛出 PermissionError
- Windows 系统路径需要使用原始字符串或双反斜杠
性能考虑
- 缓冲区大小(buffering)影响 I/O 性能
- 二进制模式比文本模式效率更高
- 大量小文件操作应考虑批量处理