赞
赏
在 Python 中,我们需要操作 文件,那么首先我们就必须要打开文件,打开文件操作完毕后,还需要关闭文件,如果只打开文件,不关闭文件,会造成系统资源的浪费。
在 Python 中,打开文件使用 Open 函数,关闭文件使用 Close 函数。
file = open(file_name [, mode[, buffering]])
参数 | 描述 |
---|---|
file | 表示打开文件成功后返回的文件对象。 |
file_name | 要打开或者创建的文件名,如果要打开的文件和当前执行的代码文件位于同一目录,则直接写文件名即可,否则,此参数需要指定打开文件所在的完整路径。 |
mode | 可选参数,用于指定文件的打开模式。可选的打开模式如下表所示。如果不写,则默认以只读(r)模式打开文件。 |
buffing | 可选参数,用于指定对文件做读写操作时,是否使用缓冲区。 |
返回打开文件成功后返回的文件对象。
open 函数的 mode 参数 和 buffering 参数是可选参数,file_name 是必选参数,其中 file 为函数的 返回值。
模式 | 说明 | 使用条件 |
---|---|---|
r | 只读模式打开文件,读文件内容的指针会放在文件的开头。 | 操作的文件必须存在。 |
rb | 以二进制格式、采用只读模式打开文件,读文件内容的指针位于文件的开头,一般用于非文本文件,如图片文件、音频文件等。 | 操作的文件必须存在。 |
r+ | 打开文件后,既可以从头读取文件内容,也可以从开头向文件中写入新的内容,写入的新内容会覆盖文件中等长度的原有内容。 | 操作的文件必须存在。 |
rb+ | 以二进制格式、采用读写模式打开文件,读写文件的指针会放在文件的开头,通常针对非文本文件(如音频文件)。 | 操作的文件必须存在。 |
w | 以只写模式打开文件,若该文件存在,打开时会清空文件中原有的内容。 | 若文件存在,会清空其原有内容(覆盖文件);反之,则创建新文件。 |
wb | 以二进制格式、只写模式打开文件,一般用于非文本文件(如音频文件) | 若文件存在,会清空其原有内容(覆盖文件);反之,则创建新文件。 |
w+ | 打开文件后,会对原有内容进行清空,并对该文件有读写权限。 | 若文件存在,会清空其原有内容(覆盖文件);反之,则创建新文件。 |
wb+ | 以二进制格式、读写模式打开文件,一般用于非文本文件 | 若文件存在,会清空其原有内容(覆盖文件);反之,则创建新文件。 |
a | 以追加模式打开一个文件,对文件只有写入权限,如果文件已经存在,文件指针将放在文件的末尾(即新写入内容会位于已有内容之后);反之,则会创建新文件。 | |
ab | 以二进制格式打开文件,并采用追加模式,对文件只有写权限。如果该文件已存在,文件指针位于文件末尾(新写入文件会位于已有内容之后);反之,则创建新文件。 | |
a+ | 以读写模式打开文件;如果文件存在,文件指针放在文件的末尾(新写入文件会位于已有内容之后);反之,则创建新文件。 | |
ab+ | 以二进制模式打开文件,并采用追加模式,对文件具有读写权限,如果文件存在,则文件指针位于文件的末尾(新写入文件会位于已有内容之后);反之,则创建新文件。 |
成功打开文件之后,可以调用文件对象本身拥有的属性获取当前文件的部分信息,其常见的属性为:
属性 | 描述 |
---|---|
file.closed | 判断文件是否己经关闭,是一个 bool 值,True 表示已经关闭,False 表示未关闭。 |
file.mode | 返回被打开文件的访问模式。 |
file.name | 返回文件的名称。 |
file.encoding | 表示文件的编码。 |
使用 open 函数的默认参数,以只读模式打开文件
print("嗨客网(www.haicoder.net)")
file = open("C:/haicoder.txt")
程序运行后,控制台输出如下:
我们使用 open 函数的默认参数,即以只读模式打开文件 “C:/haicoder.txt”,此时此文件不存在,因此,程序报错。现在我们创建该文件,再次运行该程序,控制台输出如下:
此时,我们看到,程序不再报错,即,我们使用 open 函数的默认参数打开文件时,文件必须存在,否则程序报错。
使用 open 函数打开文件后,可以获取文件信息
print("嗨客网(www.haicoder.net)")
file = open("C:/haicoder.txt", "rb+")
print("fileName =", file.name)
print("fileClosed =", file.closed)
print("fileMode =", file.mode)
程序运行后,控制台输出如下:
我们使用 open 函数的默认参数,即以只读模式打开文件 “C:/haicoder.txt”,打开成功后,根据返回的 file 对象,可以获取文件的相关属性。
使用 open 函数以读写模式打开文件
print("嗨客网(www.haicoder.net)")
file = open("C:/haicoder.txt")
print("fileName =", file.name)
print("fileClosed =", file.closed)
print("fileEncoding =", file.encoding)
print("fileMode =", file.mode)
程序运行后,控制台输出如下:
我们使用 open 函数打开文件时,指定打开的模式为 “rb+”,即以读写模式打开文件,只有以读写模式打开文件之后,我们才可以对文件进行写入。
在 Python 中,我们需要操作文件,那么首先我们就必须要打开文件,打开文件操作完毕后,还需要关闭文件,如果只打开文件,不关闭文件,会造成系统资源的浪费。
在 Python 中,打开文件使用 Open 函数。Python open 函数打开文件语法:
file = open(file_name [, mode[, buffering]])