欢迎来到《10天学会Python》第9天!今天学习读写文本文件,让你的程序能够“记住”数据,实现持久化存储。
核心概念
文本文件是常见文件类型,如日记、配置文件、日志等。Python提供了简单而强大的文件操作功能。
生活化比喻
想象文件操作就像管理一本笔记本:
open()函数 = 打开笔记本的动作- 读取模式 = 打开目的(读r、写w、追加a)
with语句 = 自动合上笔记本的贴心助手- 编码 = 笔记本语言(UTF-8最通用,中文Windows常用GBK)
文件操作基本流程
- 打开文件:使用
open()函数,指定文件名、模式和编码 - 读取/写入:根据需求进行文件操作
- 关闭文件:使用
close()或让with语句自动处理
常用模式
"r":只读模式(默认),文件必须存在"w":写入模式,创建新文件或清空已有文件"a":追加模式,在文件末尾添加内容
推荐做法:总是使用 with语句,它会在代码块结束后自动关闭文件,即使发生错误也不会忘记关闭。
python
with open("文件名.txt", "模式", encoding="utf-8") as 文件:
# 在这里进行文件操作
代码示例(5个生活场景)
示例1:读取日程安排配置文件
假设你有一个简单的日程安排文件:
python
with open("schedules.txt", "r", encoding="utf-8") as file:
content = file.read()
print("本周日程安排:")
print(content)
示例2:写入每日任务日志
记录每天完成的任务,便于回顾:
python
import datetime
tasks = ["完成Python学习", "整理笔记", "项目开发"]
today = datetime.datetime.now().strftime("%Y年%m月%d日")
with open("daily_log.txt", "w", encoding="utf-8") as f:
f.write(f"=== {today} 工作日志 ===\\n\\n")
for i, task in enumerate(tasks, 1):
f.write(f"{i}. {task}\\n")
示例3:追加新的读书笔记
在已有的读书笔记末尾添加新的心得:
python
new_note = "2024年1月20日:学习了Python文件操作,with语句非常方便!"
with open("book_notes.txt", "a", encoding="utf-8") as f:
f.write(new_note + "\\n")
示例4:处理不同编码的文本文件
处理来自不同系统的文件,需要注意编码:
python
try:
with open("data.txt", "r", encoding="utf-8") as f:
content = f.read()
except UnicodeDecodeError:
with open("data.txt", "r", encoding="gbk") as f:
content = f.read()
示例5:异常处理(文件不存在的应对)
优雅地处理文件可能不存在的情况:
python
filename = "important_notes.txt"
try:
with open(filename, "r", encoding="utf-8") as f:
print(f.read())
except FileNotFoundError:
print(f"文件不存在,正在创建...")
with open(filename, "w", encoding="utf-8") as f:
f.write("这是新文件。")
练习题
第1组:基础练习
目标:熟练使用with语句读取文件内容
- 读取并打印文件内容
- 创建一个test.txt文件,写入任意内容
- 编写程序读取并打印这个文件的所有内容
第2组:应用练习
目标:掌握文件内容的处理和分析
- 统计单词出现次数
- 编写程序统计一个文本文件中"Python"单词出现的次数
- 提示:使用字符串的
split()和count()方法
第3组:综合练习
目标:综合运用文件操作创建实用程序
- 简易日记本程序
- 设计一个命令行日记本程序,功能包括:
- 查看历史日记(读取文件显示所有内容)
- 添加新日记(在文件末尾追加内容)
- 退出程序
- 实现基本框架,可以逐步完善功能
- 设计一个命令行日记本程序,功能包括:
总结
今天学习了Python文件操作的核心技能:
核心概念:
- 文件操作三步骤:打开 → 读取/写入 → 关闭
- 常用打开模式:r(读)、w(写)、a(追加)
- 上下文管理:使用with语句自动关闭文件
- 编码处理:UTF-8是通用标准
实用技巧:
- 读取:
read()读取全部内容 - 写入:
write()写入字符串 - 异常处理:使用try-except应对文件不存在等错误
掌握了文件操作,你的程序就能真正"记住"数据了!明天我们将学习CSV文件处理,这是数据分析的基础。
学习建议:
- 创建自己的学习笔记文件,用Python程序管理
- 尝试处理从网上下载的各种文本文件
- 练习时注意错误处理,写出健壮的程序