Python-如何理解open()函数的参数。

2025-10-03 17:30:48

1、创建文件对象使用 open() 函数,它是python的内置函数。它的作用就是:打开文件并返回对应的文件对象。

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

file: 文件路径。

mode: 文件打开模式。

buffering: 设置缓冲(不影响结果)。

encoding: 解码或编码文件的编码的名称,仅适用于文本文件。

errors: 指明编码和解码错误时怎么样处理,适用于文本模式。

newline: 文本模式之下,控制一行的结束字符。

closefd: 传入的file参数类型。

opener: 自定义打开文件方式(使用默认None)

它的参数列表里有长长的一串参数,但不要被吓到,可以看到只有一个位置参数file,其他的都是可选的默认参数,用到时候再具体传参。

Python-如何理解open()函数的参数。

2、位置参数file: 是路径类对象,表示将要打开的文件的路径(绝对路径或者当前工作目录的相对路径)

1)绝对路径:文件的具体位置,一个完整的文件路径。

2)相对路径:当前py文件夹的路径,就是和当前py在同一个文件夹的文件。

Python-如何理解open()函数的参数。

3、参数mode:是访问文件的模式。

(可以分为两部分理解方便记忆)

1--动作:

'r':只读模式(默认);

'w':写模式;

'a':追加写入模式;

2--文件模式:

'b':二进制模式;

't':文本模式(默认);

'+':更新磁盘文件(读取并写入);

模式=动作+文件模式:

例如:rt(r),wr(w)

Python-如何理解open()函数的参数。

4、参数buffering缓冲,用来表示缓冲区存盘的方式。

缓冲区是内存上的一个空间,当达到缓冲区满了之后,数据才会刷到磁盘。

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

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

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

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

Python-如何理解open()函数的参数。

5、参数encoding: 设置编码的名称,适用于 t (文本模式)

例如:encoding='utf8'

Python-如何理解open()函数的参数。

6、参数errors:是用来指定编码和解码错误时处理方法。适用于 t (文本模式)。

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

2)errors=ignore,忽略错误。

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

例如:中文gbk编码如果忽略错误会出现乱码。

Python-如何理解open()函数的参数。

7、参数newline:控制换行。参数可以用None, '', '\n', '\r', '\r\n'(只能用于t模式)

关于这个搜了很多,中文都看不懂,也没人举例子,都是一样的天书解释。用默认的参数即可。

大概意思就是:

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

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

Python-如何理解open()函数的参数。

8、参数closefd:关闭文件描述符,True表示关闭。默认True,必须时True,否则报错。

Python-如何理解open()函数的参数。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢