【小学生都能看懂的Python入门教程】第三章:文件操作与异常处理 (读写文件、异常捕获) 文件操作——程序员的日记本:代码界的记忆水晶

在这里插入图片描述

文件操作——程序员的日记本:代码界的记忆水晶

一、打开文件:与记忆水晶建立连接

1. 基础开锁咒语:open()

# 打开一个名为"秘密花园.txt"的日记本
diary = open("秘密花园.txt", "a+", encoding="utf-8")  # a+模式:可以续写和读取

文件模式解密

模式咒语效果生活场景
r只读模式(默认)查看旧日记
w写入模式(清空重写)启用新日记本
a追加模式(续写)在日记本尾页添加
x创建新文件(防覆盖)买带锁的新日记本

2. 安全关闭术:with的魔法结界

# 更优雅的打开方式(自动关日记本)
with open("秘密花园.txt", "r", encoding="utf-8") as diary:
    content = diary.read()
# 退出with区块后自动关闭文件,避免忘记关本子导致墨水蒸发(数据丢失)

为什么程序员总用with?
因为人类的记忆和金鱼的7秒差不多——总忘记close()

二、读取记忆:三种阅读姿势

1. read():暴风吸入式

with open("日记.txt", "r", encoding="utf-8") as f:
    print(f.read())  # 一次性读完,适合短日记
# 输出:2023-10-01 今天学会了用Python控制空调...(后面省略500字)

2. readline():优雅细品式

# 适合逐行回忆
with open("日记.txt", "r", encoding="utf-8") as f:
    print(f.readline())  # 第一行
    print(f.readline())  # 第二行

3. readlines():清单整理式

# 把日记变成待办清单
with open("日记.txt", "r", encoding="utf-8") as f:
    lines = f.readlines()  # 返回列表
    print("今日待办:", lines[3])  # 输出第四行内容

阅读小剧场
read():一口吞下整个蛋糕
readline():用叉子小块品尝
readlines():把蛋糕切成整齐的小块

三、写入记忆:两种记录魔法

1. write():随心记录术

with open("心情日记.txt", "a", encoding="utf-8") as f:
    f.write("\n2023-10-02 终于修复了那个祖传bug!")

2. writelines():批量搬运术

todo_list = ["买咖啡\n", "写周报\n", "假装加班\n"]
with open("待办事项.txt", "w", encoding="utf-8") as f:
    f.writelines(todo_list)  # 批量写入

冷知识:在Windows系统换行是\r\n,但Python会自动转换——这就是跨平台魔法

四、实战演练:AI日记小助手

功能说明

  1. 记录每日心情和事件
  2. 自动添加日期时间
  3. 查看历史日记
  4. 数据持久化存储

代码全解析

import datetime

def diary_assistant():
    """你的24小时电子树洞"""
    while True:
        print("\n=== 日记小助手 ===")
        print("1. 写新日记")
        print("2. 读旧日记")
        print("3. 退出程序")
        
        choice = input("请选择:")
        
        if choice == "1":
            mood = input("今日心情表情(😊/😭/🤔):")
            event = input("记录今日大事件:")
            timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
            
            with open("my_diary.txt", "a", encoding="utf-8") as f:
                f.write(f"\n[{timestamp}] {mood} {event}")
            print("日记已存入记忆水晶!")
            
        elif choice == "2":
            try:
                with open("my_diary.txt", "r", encoding="utf-8") as f:
                    print("\n=== 记忆回廊 ===")
                    print(f.read())
            except FileNotFoundError:
                print("你还没有写过日记哦!")
                
        elif choice == "3":
            print("日记本已加密保存,下次见!")
            break
            
        else:
            print("输入错误,请重新选择!")

if __name__ == "__main__":
    diary_assistant()

运行示例

=== 日记小助手 ===
1. 写新日记
2. 读旧日记
3. 退出程序
请选择:1
今日心情表情(😊/😭/🤔):🤔
记录今日大事件:思考为什么print('Hello')能带来如此多快乐
日记已存入记忆水晶!

五、文件冷知识档案馆

  1. encoding="utf-8"是防乱码护身符
  2. 二进制模式可以处理图片(rb/wb
  3. 文件指针像书签,tell()查看位置,seek()移动位置
  4. CSV文件本质是带逗号的文本文件

为什么程序员要学文件操作?
因为内存像金鱼的记忆——断电就消失,而文件是永久存储的魔法石

结语:从记忆碎片到时光胶囊

现在你已经掌握:
✅ 文件的打开与关闭仪式
✅ 三种读取记忆的魔法
✅ 两种写入记忆的咒语
✅ 完整日记助手的开发

当你能用代码记录生活、保存游戏进度甚至备份重要数据时,就会明白文件操作是数字世界的时光机。记住,好的文件操作就像写日记——清晰分类、定期整理、安全保存。

下期预告:《异常处理——给未知一个拥抱:程序员的急诊室日记》


课后彩蛋:在日记助手中添加以下代码,获得隐藏功能:

# 在写入部分添加
if "bug" in event.lower():
    f.write("\n【系统检测到关键词】今日bug已自动转发给组长")
# 试试记录"今天又写了个神奇的bug"
posted @   爱上编程技术  阅读(4)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示