Python基础 :文件输入与输出(文件 I/O)

文件输入与输出(文件 I/O)

项目:构建一个“简单的记事本应用程序”,可以读取和写入文本文件。


01. 学习目标

在本课结束时,你将能够:

  • 在 Python 中打开、读取和写入文件
  • 理解文件模式(rwa
  • 使用 with 语句进行安全的文件处理
  • 构建一个简单的记笔记程序

02. 问题场景

你需要从文件中保存和读取数据——例如笔记、日志或用户数据。

你今天的目标:学习如何在 Python 中安全高效地处理文件。


03. 第一步 – 打开文件

f = open("test.txt", "w")   # 打开文件以进行写入
f.write("Hello File!")      # 写入内容
f.close()                   # 关闭文件
open("filename", "mode")
  • "w" : 写入(覆盖现有内容)
  • "a" : 追加(在末尾添加新内容)
  • "r" : 读取

04. 第2步 – 写入文件

f = open("example.txt", "w", encoding="utf-8")
f.write("First line\n")
f.write("Second line\n")
f.close()

encoding="utf-8" 可以防止在处理非英语字符时出现文本损坏。


05. 第三步 – 读取文件

读取整个文件:

f = open("example.txt", "r", encoding="utf-8")
data = f.read()
print(data)
f.close()

逐行读取:

f = open("example.txt", "r", encoding="utf-8")
line1 = f.readline()
line2 = f.readline()
print(line1, line2)
f.close()
将所有行作为列表读取:
f = open("example.txt", "r", encoding="utf-8")
lines = f.readlines()
for line in lines:
    print(line.strip())   # 去除换行符
f.close()

06. 第4步 – 使用 with(推荐方式)

with 会自动关闭文件,即使发生错误也会如此。

with open("example.txt", "r", encoding="utf-8") as f:
    for line in f:
        print(line.strip())

07. 第五步 – 将列表写入文件

fruits = ["apple", "banana", "grape"]
with open("fruits.txt", "w", encoding="utf-8") as f:
    for fruit in fruits:
        f.write(fruit + "\n")

08. 第六步 – 读取和处理文件数据

with open("fruits.txt", "r", encoding="utf-8") as f:
    fruits = f.readlines()
fruits = [f.strip() for f in fruits]  # 移除换行符
print(fruits)   # ['apple', 'banana', 'grape']

**09. 第7步 – 实践示例**

**示例1:写笔记**

note = input("请输入您的笔记: ")

with open("note.txt", "a", encoding="utf-8") as f:
    f.write(note + "\n")

示例 2:读取笔记

with open("note.txt", "r", encoding="utf-8") as f:
    print(f.read())

10. 第8步 – 小项目:简单记事本应用

创建一个基于文本的记事本,可以保存和读取用户的笔记。

while True:
    choice = input("1: 写笔记, 2: 读取笔记, 0: 退出 → ")

    if choice == "1":
        note = input("请输入您的笔记: ")
with open("notes.txt", "a", encoding="utf-8") as f:
            f.write(note + "\n")
        print("笔记已保存!\n")

    elif choice == "2":
with open("notes.txt", "r", encoding="utf-8") as f:
            print("\n您的笔记:")
            print(f.read())

    elif choice == "0":
        print("正在退出记事本。再见!")
        break

11. 反思

你已经学会了如何:

  • 打开、读取和写入文件
  • 使用 with 语句安全地处理文件
  • 存储和检索数据列表
  • 构建一个 简单的记事本应用 来练习文件输入/输出

更多