使用Python读写文本文件
读写文本文件
在编程中,处理文本文件是一个非常常见的操作。Python 提供了强大的内置功能来方便地读取和写入文本文件。本节将详细讲解如何通过打开文件、读写文件内容、以及关闭文件等步骤实现文本文件的操作。
1. 打开文件
在操作文件之前,首先需要打开文件。Python 提供了内置的 open()
函数来实现这一功能。其基本语法如下:
file = open(file_path, mode, encoding=None)
file_path
:文件的路径,可以是相对路径或绝对路径。mode
:文件打开模式(如读取、写入或追加模式),常见值包括:'r'
:只读模式,默认值。'w'
:写入模式,若文件不存在会创建文件,存在则覆盖。'a'
:追加模式,将内容添加到文件末尾。
encoding
:指定文件编码(如utf-8
),推荐在处理文本文件时明确指定,以避免乱码问题。
示例代码如下:
# 打开文件进行读取
file = open("example.txt", "r", encoding="utf-8")
print("文件已成功打开")
2. 读取文件内容
Python 提供了多种方法来读取文件内容,主要包括以下几种:
(1)读取整个文件内容
使用 read()
方法可以一次性读取文件的所有内容。
# 打开文件并读取所有内容
file = open("example.txt", "r", encoding="utf-8")
content = file.read() # 读取整个文件内容
print(content) # 打印文件内容
file.close() # 关闭文件
(2)按行读取文件内容
使用 readlines()
方法将文件的每一行作为一个字符串存储到列表中,或者使用 for
循环逐行读取内容。
# 使用 readlines() 方法读取每一行
file = open("example.txt", "r", encoding="utf-8")
lines = file.readlines() # 返回一个列表,每个元素是一行
for line in lines:
print(line.strip()) # 去除换行符打印
file.close()
# 使用 for 循环逐行读取
file = open("example.txt", "r", encoding="utf-8")
for line in file:
print(line.strip()) # 去除换行符打印
file.close()
3. 写入文件内容
写入文件时需要使用 w
或 a
模式。注意,w
模式会覆盖原有内容,而 a
模式则是将新内容追加到文件末尾。
(1)写入新内容
# 打开文件并写入新内容
file = open("example.txt", "w", encoding="utf-8")
file.write("这是第一行内容。\n")
file.write("这是第二行内容。\n")
print("内容已写入文件")
file.close() # 关闭文件
(2)追加内容
# 打开文件并追加内容
file = open("example.txt", "a", encoding="utf-8")
file.write("这是追加的一行内容。\n")
print("内容已追加到文件")
file.close() # 关闭文件
4. 关闭文件
操作完成后,务必使用 close()
方法关闭文件,以释放系统资源并确保数据写入磁盘。
file = open("example.txt", "r", encoding="utf-8")
# 进行文件操作...
file.close()
5. 结合读写操作的完整代码示例
以下是一个完整的代码示例,展示了文件的读取和写入操作:
# 打开文件并写入内容
file = open("example.txt", "w", encoding="utf-8")
file.write("Python 文件操作示例\n")
file.write("写入了一些示例文本。\n")
file.close()
# 打开文件并读取内容
file = open("example.txt", "r", encoding="utf-8")
for line in file:
print(line.strip()) # 去除换行符
file.close()
注意事项
- 确保文件存在:在读取文件时,若文件不存在,Python 会抛出
FileNotFoundError
异常。 - 指定正确的编码:在处理文本文件时,建议始终指定
encoding
参数,常用utf-8
编码,避免出现乱码。 - 关闭文件:操作完成后一定要关闭文件,避免占用系统资源。