python3:open() 方法
代码语言:javascript复制#open()常用方法是接收两个参数,分别是文件名(file)和模式(mode)
f = open('文件路径' , '模式') #这里的模式指的是处理文件的方式,是打开还是写入还是追加等等
在python3中我们用open() 方法来打开一个文件(可以是文本、图片、视频等),并且返回文件的对象
我们在对文件进行的处理过程中都需要用到open()函数,但是当文件无法被打开,python3会抛出 OSError错误
使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。
代码语言:javascript复制f = open('文件路径' , '模式')
f.close()
文件使用完毕后必须关闭,因为文件对象会占用系统的资源,并且系统能打开的文件数量也是有限的
open() 方法的完整语法格式
代码语言:javascript复制open(file, mode='r', buffering=-1 , encoding=None , errors=None , newline=None , closefd=True , opener=None)
file
---文件路径,是open()方法必需的参数,指文件的相对或者绝对路径mode
---模式,可选参数,指文件打开的方式-
buffering
---设置缓冲策略,也是一个可选参数,它一般有三种设置。- 当
buffering
设置为0时,即表示不使用缓冲,直接进行读写,但是这个设置只在二进制模式下有效 - 当
buffering
设置为1时,表示在文本模式下使用行缓冲区方式 - 当
buffering
设置大于1时,表示缓冲区的设置大小
- 当
encoding
---文件编码格式,可选参数,一般为utf-8或者gbk,只在文本模式下使用-
errors
---可选参数,它指定python如何处理编码或解码错误,它也不能在二进制模式下使用。以下为一些标准错误的处理程序:- 当指明为
'strict'
时,编码出错抛出异常ValueError,默认值None
具有相同的效果。 'ignore'
---忽略错误。请注意,忽略编码错误可能会导致数据丢失。'replace'
使用某字符进行替代模式,(例如'?'
)插入到存在格式错误的数据的位置。'surrogateescape'
将表示任何不正确的字节,作为从U DC80到U DCFF范围内的Unicode私人使用区域中的代码点。当写入数据时使用surrogateescape
错误处理程序时,这些专用代码点将被转回相同的字节。这对于处理未知编码中的文件很有用。- 仅当写入文件时,才支持
'xmlcharrefreplace'
。编码不支持的字符将替换为相应的XML字符引用
'backslashreplace'
通过Python的反斜杠转义序列替换格式错误的数据。'namereplace'
,也仅在编写时支持,用 N {...}转义序列替换不支持的字符。
- 当指明为
newline
---用来控制文本模式之下,一行的结束字符。可以是None,’’,n,r,rn等closefd
---如果closefd
是False
并且给出了文件描述器而不是文件名,则当文件关闭时,基本文件描述器将保持打开。如果给定文件名,则closefd
必须为True
(默认值),否则将产生错误。opener
---用来实现自己定义打开文件方式