open函数的参数

读写文件,要通过内置函数open()打开文件,获得文件对象。

函数open的参数如下:

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

参数file

file参数指定了要打开文件的路径。

可以是相对路径,比如 'text.txt', 就是指当前工作目录下面的log.txt 文件 也可以是绝对路径,比如 'd:\project\text.txt'。

参数mode

mode指定了文件打开的模式:

默认为't'模式

python打开open函数的三个参数 python中open函数的参数_字符串

参数 encoding

encoding 参数指定了读写文本文件时,使用的 字符编解码 方式。

可以使用的参数值如下

utf-8:UTF-8是一种针对Unicode的可变长度字符编码,也是一种前缀码。ASCII

utf-8-sig: utf-8-sig 需要提供BOM,即带有签名的 utf-8(UTF-8 with BOM)。

ASCII:ASCII 美国信息交换标准代码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。

gb2312:由中国国家标准总局1980年发布,1981年5月1日开始使用。GB2312编码共收录汉字6763个,其中一级汉字3755个,二级汉字3008个。

gbk:是在GB2312-80标准基础上的内码扩展规范,使用了双字节编码方案,其编码范围从8140至FEFE(剔除xx7F),共23940个码位,共收录了21003个汉字,完全兼容GB2312-80标准。

buffering参数

用于设置缓冲策略:

buffering为-1时,使用默认大小的缓冲区。

buffering为0时,关闭缓冲区,直接读写,仅在二进制模式下有效。

buffering为1时,表示在文本模式下使用行缓冲区方式。即见到换行符就刷新存盘。

buffering为大于1时,表示缓冲区用于指定缓冲区的大小。

errors参数

是用来指定编码和解码错误时处理方法。

errors='strict',编码出错则抛出异常ValueError。同等于默认errors=None;

errors='ignore',忽略错误。

errors='replace',替代模式,比如使用“?’来替换出错的地方。

newline参数

控制换行。

参数可以用None, '', '\n', '\r', '\r\n'

用默认的参数即可。

用程序输入文本时想换行必须用'\n', '\r', '\r\n’,直接回车无效。

读取非程序输入的文本时,输入'\n', '\r', '\r\n’就是个字符串。没有换行的作用。但你回车换行的符号它能读取到。

参数closefd

关闭文件描述符

True表示关闭。

默认True,必须为True,否则报错。
 

参数opener

通过传递可调用对象opener可以使用自定义开启器。

然后通过调用opener(文件,标志)获取文件对象的基础文件描述器。

opener必须返回一个打开的文件描述器(传递os.open为opener 结果类似的功能 None)。