- ⏳ 课程时长: 90 分钟
- 🎯 教学目标:
- 🧠 理解内存 vs 硬盘:为什么需要存文件?
- ✍️ 写入文件:模式
'w'和'a'的区别。 - 📖 读取文件:模式
'r'把数据读回来。 - 🛡️ 安全写法:使用
with open自动关闭文件。
📖 课程内容
1. 🤔 引入:金鱼记忆 vs 永久笔记 (10 分钟)
- 变量 (Variables) 就像金鱼的记忆 🐟:程序一关,瞬间失忆。
- 文件 (Files) 就像刻在石头上的字 🗿:几百年后还在那里。
我们要学的,就是如何让 Python 打开一个 txt 文件,往里面写字,或者读里面的字。
2. 🛡️ 安全咒语:with open (15 分钟)
以前打开文件要三步:打开 -> 读写 -> 关闭。 新手最容易忘记关闭文件,导致文件损坏!💥
Python 发明了一种“自动门”写法:with open。
只要代码走出了缩进,文件就会自动关闭,超级安全!
-
📜 语法:
with open("文件名.txt", "模式") as f: # 这里写文件操作 # f 就像是这个文件的“手柄” # 出了缩进,文件自动关闭
3. ✍️ 写入魔法:模式 ‘w’ (Write) (20 分钟)
我想写一封信给未来的自己。
- 模式
'w': 写入模式。- ⚠️ 警告: 如果文件已经存在,它会清空旧内容,重新写!(覆盖)
- 如果文件不存在,它会自动创建。
# 创建一个叫 letter.txt 的文件,并写入内容
with open("letter.txt", "w") as f:
f.write("你好,未来的我!\n") # \n 是换行符,相当于按回车
f.write("今天我学会了 Python 文件操作。\n")
f.write("感觉自己酷毙了!")
print("信件已寄出(保存成功)!📮")
快去你的代码文件夹里看看,是不是多了一个 letter.txt?
4. 📖 读取魔法:模式 ‘r’ (Read) (20 分钟)
现在,我要把信读出来。
- 模式
'r': 读取模式。- 如果文件不存在,程序会报错 (FileNotFoundError)。
# 读取 letter.txt 的内容
try:
with open("letter.txt", "r") as f:
content = f.read() # 把文件里所有字,一口气读到 content 变量里
print("--- 信的内容如下 ---")
print(content)
print("------------------")
except FileNotFoundError:
print("❌ 找不到这封信!你是不是还没写?")
5. ➕ 追加魔法:模式 ‘a’ (Append) (15 分钟)
如果我不想清空旧的,只想在后面加一句话呢? 比如写日记,不能把昨天的擦掉呀!
- 模式
'a': 追加模式。- 在文件末尾接着写,绝不删除旧内容。
# 往 letter.txt 后面补一句话
with open("letter.txt", "a") as f:
f.write("\nPS: 记得做作业!") # \n 换行很重要,不然会挤在上一行屁股后面
print("补充内容已添加!")
6. ✨ 多元化场景实战 (10 分钟)
场景 A:🏆 游戏高分榜 每次玩完游戏,把分数记下来。
score = 1000
player = "勇者小明"
# 使用 'a' 模式,保留以前的高分
with open("highscore.txt", "a") as f:
f.write(f"{player}: {score}\n")
print("分数已记录!")
场景 B:📜 待办事项 (ToDo List)
读取清单,告诉我要做什么。
(假设目录下有一个 todo.txt,里面写着:吃饭、睡觉、打豆豆)
with open("todo.txt", "r") as f:
lines = f.readlines() # 这个函数能把每一行变成列表的一个元素!
print(f"你有 {len(lines)} 件事要做:")
for task in lines:
print("👉 " + task.strip()) # .strip() 用来去掉每行自带的换行符
💪 课堂大练兵 (5 分钟)
- 📝 秘密日记:
写一个程序,询问用户:“今天发生了什么?”
用户输入一段话。
程序把它保存到
diary.txt里。(记得用追加模式a,不然以前的日记就丢啦!)
📝 课程总结 (5 分钟)
open(文件名, 模式):打开文件的钥匙。'w':覆盖写(小心!会清空)。'r':读取。'a':追加写(写日记用这个)。with ... as f::自动关门,安全第一。
🏠 课后作业 (5 分钟)
-
📊 访问计数器: 创建一个文件
count.txt,里面只写一个数字。 每次运行你的程序,就读取这个数字,把它 +1,然后再写回去。 打印:“你是第 X 位访客”。 -
🕵️♂️ 真正的勇者斗恶龙存档 (挑战题): 修改第 13 课的游戏。
- 游戏开始时,尝试读取
save.txt,如果有时,恢复血量。 - 游戏结束(或者玩家选择退出)时,把当前的
hero_hp写入save.txt。 - 这样你的勇者就可以休息,明天接着打了!
- 游戏开始时,尝试读取
下节课预告: 现在我们学会了Python的大部分基础。 但是,在 Python 的世界里,还有很多“特殊的数据结构”,比如字典 (Dictionary)。 它就像一本真正的字典,你可以通过“名字”找到“分数”,通过“商品名”找到“价格”,而不需要去数索引。 下节课,我们将学习“超级查询机 – 字典”!📖🔍
下次见,记录者们!👋
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)