文件输入与输出(文件 I/O)
项目:构建一个“简单的记事本应用程序”,可以读取和写入文本文件。
01. 学习目标
在本课结束时,你将能够:
- 在 Python 中打开、读取和写入文件
- 理解文件模式(
r、w、a) - 使用
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语句安全地处理文件 - 存储和检索数据列表
- 构建一个 简单的记事本应用 来练习文件输入/输出

