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 语句来自动管理文件打开和关闭操作。在进行文件操作时,我们应该注意及时关闭文件,防止资源泄露。