Python open() 函数
语法
open(file, mode="r", buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数
参数 | 描述 |
---|---|
file | 要打开的文件 |
mode | 打开方式 |
encoding | 设置编码格式,默认为 cp936(GBK) |
buffering | buffering 用于设置缓冲策略。传递 0 表示关闭缓冲(仅允许在二进制模式下),1 表示行缓冲(仅在文本模式下可用),大于 1 表示以指示固定大小的块缓冲区的大小(以字节为单位)。如果没有给出缓冲参数,则默认缓冲策略的工作方式如下:二进制文件以固定大小的块缓冲;默认 buffer 大小由 io.DEFAULT_BUFFER_SIZE 确定。在许多系统上,缓冲区通常为 4096 或 8192 字节长。“交互式” 文本文件(isatty() 返回 True 的文件)使用行缓冲。其他文本文件使用上述策略用于二进制文件。 |
errors | errors 表示指定如何处理编码和解码错误,这不能在二进制模式下使用。可以使用各种标准错误处理程序(在错误处理程序下列出),但已在 codecs.register_error() 中注册的任何错误处理名称也是有效的。 |
newline | 行符 newline 控制通用换行模式的工作方式(仅适用于文本模式)。它可以是None, , \n, \r 和 \r\n。它的工作原理如下:从流中读取输入时,如果换行为None,则启用通用换行模式。输入中的行可以以\n,\r或\r\n结尾,并且在返回给调用者之前将这些行转换为\n。如果是 ,则启用通用换行模式,但行结尾将返回到未翻译的调用者。如果它具有任何其他合法值,则输入行仅由给定字符串终止,并且行结尾将返回给未调用的调用者。将输出写入流时,如果换行为 None,则写入的任何 “\n” 字符都将转换为系统默认行分隔符 os.linesep 。如果换行符是 “ 或 \n,则不会进行翻译。如果换行符是任何其他合法值,则写入的任何 “\n” 字符都将转换为给定的字符串。 |
closefd | 如果 closefd 为 False 并且给出了文件描述符而不是文件名,则在关闭文件时,底层文件描述符将保持打开状态。如果给出文件名,则 closefd 必须为 True(默认值),否则将引发错误。 |
opener | 通过传递可调用的 opener 可以使用自定义 opener。然后通过使用(file,flags)调用opener来获取文件对象的基础文件描述符。opener必须返回一个打开的文件描述符(传递 os.open 作为 opener 导致类似于传递 None 的功能)。新创建的文件是不可继承的。 |
打开方式
模式 | 描述 |
---|---|
r | 以只读模式打开,文件不存在会报错 |
rb | 以二进制只读模式打开一个文件 |
r+ | 以读写模式打开,文件不存在会报错 |
rb+ | 以二进制读写模式打开一个文件,文件不存在会报错 |
w | 以写入模式打开一个文件,如文件存在删除里面的内容,文件不存在创建新文件 |
wb | 以二进制写入模式打开一个文件,如文件存在删除里面的内容,文件不存在创建新文件 |
w+ | 以读写模式打开,如文件存在删除里面的内容,文件不存在创建新文件 |
wb+ | 以二进制读写模式打开一个文件,如文件存在删除里面的内容,文件不存在创建新文件 |
a | 以写入模式打开一个文件,如果文件存在往后追加(文件指针在最后面),如果不存在创建新文件 |
ab | 以二进制写入模式打开一个文件,如果文件存在往后追加(文件指针在最后面),如果不存在创建新文件 |
a+ | 以读写模式打开一个文件,如果文件存在往后追加(文件指针在最后面),如果不存在创建新文件 |
ab+ | 以二进制读写模式打开一个文件,如果文件存在往后追加(文件指针在最后面),如果不存在创建新文件 |
描述
open() 函数用于打开一个文件,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。
返回值
文件对象。
例子
>>> file = open("d:/test.txt", "a", encoding="utf-8", buffering=1)
>>> print(file)
<_io.TextIOWrapper name=\'d:/test.txt\' mode=\'a\' encoding=\'utf-8\'>
>>> print(type(file))
<class \'_io.TextIOWrapper\'>
如果发现错误,可以在评论区指正哦~