Python 文件操作详解:如何读取和写入文件

发布于:2025-07-21 ⋅ 阅读:(19) ⋅ 点赞:(0)

在实际开发中,我们经常需要处理各种文件,比如日志文件、配置文件、数据文件等。Python 提供了非常方便的内置函数来操作文件,包括读取、写入、追加、删除等

本文将带你从零开始掌握:

  • 如何打开和关闭文件
  • 如何读取和写入文本文件
  • with 语句的使用
  • 实战示例讲解

一、为什么需要文件操作?

程序运行时的数据通常保存在内存中,一旦程序结束或计算机重启,这些数据就会丢失。为了持久化存储数据,我们需要使用文件。

通过文件操作,我们可以:

  • 读取已有数据;
  • 保存计算结果;
  • 记录日志信息;
  • 配置程序参数等。

二、基本文件操作流程

Python 中进行文件操作的基本流程如下:

  1. 使用 open() 打开文件;
  2. 使用 read() / write() 等方法操作文件;
  3. 使用 close() 关闭文件(或使用 with 自动管理);

三、打开文件:open() 函数

✅ 基本语法:

file = open('文件路径', '模式')

常见的文件打开模式有:

模式 描述
'r' 只读模式(默认),文件必须存在
'w' 写入模式,覆盖已有内容,若文件不存在则创建
'a' 追加模式,在文件末尾添加内容
'r+' 读写模式
'b' 二进制模式(如 'rb''wb'

四、读取文件内容

示例 1:一次性读取全部内容

file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()

示例 2:逐行读取内容

file = open('example.txt', 'r')

for line in file:
    print(line.strip())  # 去除每行末尾的换行符

file.close()

五、写入文件内容

示例 1:写入新内容(覆盖原有)

file = open('example.txt', 'w')
file.write("这是第一行\n")
file.write("这是第二行\n")
file.close()

⚠️ 注意:'w' 模式会清空文件原有内容!

示例 2:追加内容(不覆盖)

file = open('example.txt', 'a')
file.write("这是新增的一行\n")
file.close()

六、使用 with 语句自动管理文件

为了避免忘记调用 close() 导致资源泄露,推荐使用 with 语句自动管理文件的打开与关闭。

✅ 推荐写法:

with open('example.txt', 'r') as file:
    content = file.read()
    print(content)
# 文件在此处已自动关闭

示例:读写结合

with open('example.txt', 'r+') as file:
    content = file.read()
    file.write("\n这是新添加的内容")
    print("当前内容为:\n", content)

七、常见文件操作函数与方法

方法名 功能说明
read() 读取整个文件内容
readline() 读取一行
readlines() 读取所有行并返回列表
write(str) 将字符串写入文件
writelines(list) 将字符串列表写入文件
seek(offset) 设置文件指针位置
tell() 获取当前文件指针位置
close() 关闭文件

八、实战练习:学生信息管理系统(文件版)

下面是一个完整的示例,演示如何将学生信息保存到文件中,并支持查看、添加功能。

💻 示例代码:

def add_student(name, score):
    with open("students.txt", "a") as file:
        file.write(f"{name},{score}\n")

def show_students():
    try:
        with open("students.txt", "r") as file:
            lines = file.readlines()
            for line in lines:
                name, score = line.strip().split(',')
                print(f"姓名:{name},成绩:{score}")
    except FileNotFoundError:
        print("暂无学生信息。")

# 主菜单
while True:
    print("\n1. 添加学生\n2. 查看学生\n3. 退出")
    choice = input("请选择操作:")

    if choice == "1":
        name = input("请输入学生姓名:")
        score = input("请输入学生成绩:")
        add_student(name, score)
    elif choice == "2":
        show_students()
    elif choice == "3":
        break
    else:
        print("无效选择,请重新输入。")

运行效果示例:

1. 添加学生
2. 查看学生
3. 退出
请选择操作:1
请输入学生姓名:张三
请输入学生成绩:90

九、拓展建议(进阶练习)

如果你已经完成了上面的小项目,还可以尝试以下进阶任务来挑战自己:

  1. 修改和删除记录:实现编辑或删除某位学生的功能;
  2. JSON 文件格式:将学生信息以 JSON 格式保存,便于后续解析;
  3. 图形界面版本:使用 tkinter 制作带 GUI 的文件管理系统;
  4. 异常处理增强:对文件不存在、格式错误等情况做更完善的处理。

十、总结对比表格

操作类型 方法 说明
打开文件 open() 支持多种模式(r, w, a 等)
读取内容 read()readline()readlines() 不同方式读取文件内容
写入内容 write()writelines() 写入字符串或字符串列表
自动管理 with open(...) as f: 自动关闭文件,推荐使用
关闭文件 close() 必须手动调用,否则可能造成资源泄漏

十一、结语

掌握了文件操作之后,你就可以编写能够持久保存数据的程序了,这为你今后开发更复杂的应用(如日志系统、数据库工具、爬虫等)打下了坚实的基础。

📌 建议:

  • 多动手练习,尝试自己设计一些带文件操作的小程序;
  • 学会使用调试工具查看文件内容变化;
  • 结合函数、循环、条件判断等知识写出结构良好的代码。

如果你喜欢这篇博文,别忘了点赞、收藏并分享给更多想学 Python 的朋友~有任何问题也欢迎留言讨论 😊


网站公告

今日签到

点亮在社区的每一天
去签到