Python 3.x 中如何使用open()函数打开文件

1.概述

在 Python 中,打开文件并读写文件是常见的任务之一。Python 提供了内置函数 open() 用于打开文件,通过使用这个函数,我们可以轻松地读写文本文件、二进制文件等。在本文中,我们将讨论如何在 Python 3.x 中使用 open() 函数来打开文件。

2.打开文件的语法

在 Python 中,使用 open() 函数来打开文件,其语法如下:

file_object = open(file_name, access_mode, buffering)

file_name: 需要打开的文件名或文件路径。

access_mode: 文件打开模式,可以是 'r' 表示只读,'w' 表示只写,'a' 表示追加等,具体的模式如下表:

模式 描述
'r' 以只读方式打开文件
'w' 以写入方式打开文件,如果文件存在则覆盖原内容,不存在则创建新文件
'a' 以追加方式打开文件,如果文件不存在则创建新文件
'x' 以独占方式打开文件,如果文件已存在则失败
'b' 以二进制模式打开文件,在 Windows 平台上必须加上此模式
't' 以文本模式打开文件,是默认模式,也就是说可以省略此模式
'+' 以读写模式打开文件,同时必须加上 'b' 或 't' 模式

buffering: 缓冲策略,如果不提供该参数,则使用默认值,即使用全缓冲策略(缓存所有数据),如果使用行缓冲策略可以将该参数设置为 1,如果使用无缓冲策略可以将该参数设置为 0。

3.常用打开文件方式

在 Python 中,我们常常使用以下方式来打开文件:

3.1.以只读方式打开文件

#以只读方式打开文件

f = open('data.txt', 'r')

上述代码将在当前工作目录中打开名为 'data.txt' 的文件,并以只读方式进行操作。

3.2.以写入方式打开文件

#以写入方式打开文件

f = open('data.txt', 'w')

上述代码将在当前工作目录中打开名为 'data.txt' 的文件,并以写入方式进行操作。如果文件已存在,则会覆盖原内容;如果文件不存在,则会创建新文件。

3.3.以追加方式打开文件

#以追加方式打开文件

f = open('data.txt', 'a')

上述代码将在当前工作目录中打开名为 'data.txt' 的文件,并以追加方式进行操作。如果文件不存在,则会创建新文件。

4.关闭文件

在完成文件操作后,我们应该及时关闭文件,以释放系统资源,close() 方法就是用来关闭文件的,如下是该方法的语法:

file_object.close()

在关闭文件之前应该先判断文件是否已经关闭,可以通过 closed 属性来判断,该属性返回的是一个布尔值。

#打开文件

f = open('data.txt', 'r')

#读取文件内容

data = f.read()

#判断文件是否已经关闭

if not f.closed:

#关闭文件

f.close()

5.读取文件

当文件对象 f 被创建后,我们就可以对文件进行读取操作了。下面介绍几种读取文件的方法。

5.1.read() 方法

该方法将整个文件读取为一个字符串,并返回该字符串。

#以只读方式打开文件

f = open('data.txt', 'r')

#读取文件内容

str = f.read()

print(str)

#关闭文件

f.close()

以上代码会将名为 'data.txt' 的文件中的内容读取到字符串中,并输出该字符串。

5.2.readline() 方法

该方法读取并返回文件中的一行,如下示例:

#以只读方式打开文件

f = open('data.txt', 'r')

#循环读取每一行

while True:

#读取一行

line = f.readline()

#如果读取到最后一行,退出循环

if not line:

break

#输出该行

print(line)

#关闭文件

f.close()

以上代码会将名为 'data.txt' 的文件中的每一行读取出来,并输出到控制台中。

5.3.readlines() 方法

该方法将整个文件按行读取为一个列表,列表的每个元素是文件中的一行。

#以只读方式打开文件

f = open('data.txt', 'r')

#读取文件内容

lines = f.readlines()

#循环输出每一行

for line in lines:

print(line)

#关闭文件

f.close()

以上代码会将名为 'data.txt' 的文件中的每一行读取出来,并输出到控制台中。

6.写入文件

当文件对象 f 被创建后,我们就可以对文件进行写入操作了。下面介绍几种写入文件的方法。

6.1.write() 方法

该方法将字符串写入文件中,并返回写入的字符数,如下示例:

#以写入方式打开文件

f = open('data.txt', 'w')

#写入数据

f.write('Hello, World!\n')

f.write('Python is a great language.\n')

#关闭文件

f.close()

以上代码会在当前工作目录中创建一个名为 'data.txt' 的文件,并将两行字符串写入该文件中。

6.2.writelines() 方法

该方法将一个字符串列表写入文件中,如下示例:

#以写入方式打开文件

f = open('data.txt', 'w')

#写入数据

f.writelines(['Hello, World!\n', 'Python is a great language.\n'])

#关闭文件

f.close()

以上代码会在当前工作目录中创建一个名为 'data.txt' 的文件,并将两行字符串写入该文件中。

7.with 语句

上面的代码示例中,我们需要在每次文件操作后都手动进行文件关闭操作,如果文件操作过程中出现了异常,导致程序中止而无法正确关闭文件,则有可能造成文件资源泄露。为了避免这种情况发生,Python 提供了 with 语句来自动管理文件的打开和关闭操作。

使用 with 语句时,我们可以直接在 with 语句内部进行文件操作,当 with 语句执行结束时,自动关闭文件。

with open('data.txt', 'r') as f:

data = f.read()

print(data)

以上代码会在当前工作目录中打开名为 'data.txt' 的文件,并使用 read() 方法读取文件内容。当 with 语句执行结束时,系统会自动关闭文件。

8.总结

本文介绍了如何在 Python 3.x 中使用 open() 函数打开文件,并讨论了常见的打开文件方式,读取和写入文件的方法,如何关闭文件以及如何使用 with 语句来自动管理文件打开和关闭操作。在进行文件操作时,我们应该注意及时关闭文件,防止资源泄露。

后端开发标签