8.1 open()函数
文件io是指文件内容的输入和输出,常用操作包括打开文件、读取、写入、关闭等。
open()是python内置函数,可以用来打开文件并对其进行操作。
语法:open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
示例:
f = open('test')
f.close()
在上例中,我们创建了一个文件对象test,并将其关闭
参数介绍
file
file是你需要打开的文件,可以通过"路径+文件名"指定,只写文件名则默认是在当前目录下。
上述案例中创建的test文件,就是创建于当前目录下。
mode
mode参数决定了打开文件的模式,只读、写入、追加等,其默认值为r,即是只读模式
在只读模式下只能进行读取操作,写入会报错
mode主要参数如下
注意:r/w/x/a参数无法共存
buffering
正常情况下,程序运行在内存中,io操作也不例外。而buffer缓冲区就是一个内存空间,它可以视为一个FIFO(先进先出)队列,当缓冲区达到阈值或者满了的时候,数据会被flush到磁盘。
buffering 的缺省值为-1,表示使用默认大小的缓冲区(io.DEFAULT_BUFFER_SIZE),二进制模式下一般为4096或8192,文本模式视情况而定(终端设备是行缓冲,否则同样是默认大小缓冲区)。
buffering=0,仅支持二进制模式,关闭缓冲区。
buffering=1,二进制模式下缓冲区设为一个字节,文本模式下设为行缓冲。
buffering>1,二进制模式下表示缓冲区大小。
除非明确知道缓冲区所需大小,一般建议使用默认的缓冲区设置。
encoding
encoding参数表示打开文件时使用何种编码,缺省时根据操作系统决定。
windows系统是GBK编码,linux系统是UTF-8编码。
errors
如何接受编码错误。
None 和 strict 表示在编码错误时抛出ValueError异常,ignore忽略错误。
newline
文本模式下指定换行符,支持None、 '\r'、 '\n'、 '\r\n'
closdfd
文件关闭后是否关闭文件描述符,True表示关闭,False表示不关闭。