在 Python 中,如果想要操作文件,首先需要创建或者打开指定的文件,并创建一个文件对象,而这些工作可以通过内置的 open() 函数实现。

点击跳转原文链接
菜鸟链接

open() 函数用于创建或打开指定文件,该函数的常用语法格式如下:

file = open(file_name , mode='r', buffering=-1  , encoding = None )
  • file_name:要创建或打开文件的文件名称,该名称要用引号(单引号或双引号都可以)括起来。需要注意的是,如果要打开的文件和当前执行的代码文件位于同一目录,则直接写文件名即可;否则,此参数需要指定打开文件所在的完整路径。
  • mode:可参数,用于指定文件的打开模式。可选的打开模式如表 1 所示。如果不写,则默认以只读(r)模式打开文件。
  • buffering:可选参数,用于指定对文件做读写操作时,是否使用缓冲区(本节后续会详细介绍)。
  • encoding:手动设定打开文件时所使用的编码格式,不同平台的 ecoding 参数值也不同,以 Windows 为例,其默认为 cp936(实际上就是 GBK 编码)。



模式

意义

注意事项

r

只读模式打开文件,读文件内容的指针会放在文件的开头。

操作的文件必须存在。

rb

以二进制格式、采用只读模式打开文件,读文件内容的指针位于文件的开头,一般用于非文本文件,如图片文件、音频文件等。

操作的文件必须存在。

r+

打开文件后,既可以从头读取文件内容,也可以从开头向文件中写入新的内容,写入的新内容会覆盖文件中等长度的原有内容。

操作的文件必须存在。

rb+

以二进制格式、采用读写模式打开文件,读写文件的指针会放在文件的开头,通常针对非文本文件(如音频文件)。

操作的文件必须存在。

w

以只写模式打开文件,若该文件存在,打开时会清空文件中原有的内容。

若文件存在,会清空其原有内容(覆盖文件);反之,则创建新文件。

wb

以二进制格式、只写模式打开文件,一般用于非文本文件(如音频文件)

若文件存在,会清空其原有内容(覆盖文件);反之,则创建新文件

w+

打开文件后,会对原有内容进行清空,并对该文件有读写权限。

若文件存在,会清空其原有内容(覆盖文件);反之,则创建新文件

wb+

以二进制格式、读写模式打开文件,一般用于非文本文件

若文件存在,会清空其原有内容(覆盖文件);反之,则创建新文件

a

以追加模式打开一个文件,对文件只有写入权限,如果文件已经存在,文件指针将放在文件的末尾(即新写入内容会位于已有内容之后);反之,则会创建新文件。

ab

以二进制格式打开文件,并采用追加模式,对文件只有写权限。如果该文件已存在,文件指针位于文件末尾(新写入文件会位于已有内容之后);反之,则创建新文件。

a+

以读写模式打开文件;如果文件存在,文件指针放在文件的末尾(新写入文件会位于已有内容之后);反之,则创建新文件。

ab+

以二进制模式打开文件,并采用追加模式,对文件具有读写权限,如果文件存在,则文件指针位于文件的末尾(新写入文件会位于已有内容之后);反之,则创建新文件。