3150

16 分钟

#Python 的内置函数 open

说明:打开文件。

#函数说明

def open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None): ''' 打开文件 :param file: 文件路径或描述符 :param mode: 模式 :param buffering: 缓冲策略 :param encoding: 编码格式,默认使用本地编码 :param errors: 指定如何处理编解码错误 :param newline: 如何解析换行符 :param closefd: 如果 file 时文件描述符,此参数决定关闭文件流时是否自动关闭描述符 :param opener: 自定义开启器 :return: 文件对象 '''

说明

打开文件。

如果该文件不能被打开,则产生 OSError 异常。

参数

  • file - 文件路径或描述符
  • mode - 打开的模式
  • buffering - 缓冲策略
  • encoding - 文本模式下指定编码,默认为 None,使用操作系统的编码
  • errors - 指定如何处理编解码错误,默认为 None
  • newline - 指定如何处理换行符,默认为 None
  • closefd - 如果 file 时文件描述符,此参数决定关闭文件流时是否自动关闭描述符,默认为 True
  • opener - 自定义开启器,通过此函数打开文件,默认为 None

返回值

用于读写文件的文件流。

#文件的打开模式

  • r 表示读,如果文件不存在则会报错
  • w 表示写,如果文件已经存在则会清空原文件
  • a 表示追加,打开文件时偏移量在文件末尾
  • + 表示读写
  • b 表示二进制模式,常用于非文本文件,例如图片、可执行文件等
模式说明文件存在文件不存在初始偏移返回值类型
r只读打开文件报错 FileNotFoundError文件开头str
w只写清空文件新建文件文件开头str
a追加写打开文件新建文件文件末尾str
r+读写打开文件新建文件文件开头str
w+读写清空文件新建文件文件开头str
a+追加读写打开文件新建文件文件末尾str
rb只读打开文件报错 FileNotFoundError文件开头byets
wb只写清空文件新建文件文件开头byets
ab追加写打开文件新建文件文件末尾byets
rb+读写打开文件报错 FileNotFoundError文件开头byets
wb+读写清空文件新建文件文件开头byets
ab+追加读写打开文件新建文件文件末尾byets

#缓冲策略

  • 二进制模式下,可以传入 0 来关闭缓冲区
  • 二进制模式下,可以传入一个大于 1 的整数表示缓冲区的字节大小
  • 文本模式下,可以传入 1,将缓冲策略设为 行缓冲

#编码错误的处理方式

  • None'strict' - 编码错误时产生 ValueError 异常
  • 'ignore' - 忽略错误,通常会丢失数据
  • 'replace' - 使用 '?' 替换有错误的位置
  • 'surrogateescape' - 使用 U+DC08U+DCFF 之间的值表示不正确的字节
  • 'xmlcharrefreplace' - 编码格式不支持的字符将被替换为相应的 XML 字符引用,仅在写入时可用
  • 'backslashreplace' - 使用反斜杠转义表示错误的数据
  • 'namereplace' - 使用 \N{...} 转义表示错误的数据

#换行符的处理

  • None - 采取通用换行模式,'\n''\r''\r\n' 都会被替换为 '\n' 返回
  • '' - 采取通用换行模式,换行符不会被替换,而是之间返回
  • '\n' - 仅在 '\n' 换行
  • '\r' - 仅在 '\r' 换行
  • '\r\n' - 仅在 '\r\n' 换行

#示例

with open(__file__) as fp: print(fp)

>>> Establishing WebAssembly Runtime.

>>> Standby.

Powered by Shift.

#推荐阅读

创建于 2025/6/9

更新于 2025/6/10