因为该函数的官方参考手册引文篇幅过大,不再本文中体现,本文的内容均翻译自官方手册,如有需要查询原引文内容的,详见官方手册。另外,本文中涉及的链接,会在发布相应的文章后陆续进行补充。
参数形式
open(file, mode=’r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数使用说明
打开发文件并返回相应的文件对象,如果文件不能打开,则引发OSError异常。
file
file可以是字符串或字节对象,用于给出要打开文件路径名(绝对或相对当前工作目录)或要打包文件的整数文件描述符。如果给定某个文件描述符,当返回的I/O对象关闭时那么它会被关闭,除非closefd设为False。
mode
mode是一个可选的字符串参数,用来指定文件打开模式。默认值为’r’,表示以文本模式只读打开。其他常用值有:’w’可写(若文件已经存在则截断),’x’单独创建,’a’添加(在一些Unix系统上,这意味着不管当前查找位置,所有写入添加到文件尾部)。在文本模式下,如果没有指定编码,那么编码的使用依赖于平台:调用locale.getpreferredencoding(False)来获取当前本地编码(对于读写原始字节,使用二进制模式,且不用指定编码)。可用的mode有:
字符 | 含义 |
---|---|
‘r’ | 只读打开(默认) |
‘w’ | 写入打开,首先截断文件 |
‘x’ | 单独创建打开,如果文件已存在则失败 |
‘a’ | 写入打开,如果文件存在则添加到尾部 |
‘b’ | 二进制模式 |
‘t’ | 文本模式(默认) |
‘+’ | 更新方式(读、写)打开磁盘文件 |
‘U’ | 通用换行模式(已过时) |
默认模式’r’(只读打开,等同于’rt’)。对于二进制读写访问,’w+b’模式打开,并将文件截断为0字节。’r+b’不截断打开文件。
Python区分二进制和文本I/O。文件以二进制模式打开(mode参数含’b’),不进行任何解码,将内容以bytes对象返回。在文本模式下(默认,或mode参数含’t’),返回的文件内