导语:
学到现在,你可能会发现一个令人沮丧的现象:不管我们在程序里算了多少笔账、存了多少个字典,只要把黑框框(终端)一关,所有的数据就全都灰飞烟灭了。
想要让数据永久保存,我们就必须让 Python 学会跟电脑的硬盘打交道——也就是“文件读写”。今天,我们将掌握 Python 中最实用的一项技能,帮你真正推开自动化办公和数据处理的大门!
一、 把大象装进冰箱分几步?(基础打开与关闭)
在 Python 中操作文件,就跟把大象装进冰箱一样,永远分三步:打开文件 ➡️ 读/写数据 ➡️ 关闭文件。
我们使用 open() 函数来召唤文件:
# 1. 打开文件("r" 代表 read,只读模式)f = open("example.txt", "r") # 2. 读取全部内容content = f.read() print(content)# 3. 关闭文件(极其重要!)f.close()
⚠️ 避坑指南:
用完文件必须调用 .close() 关闭它!如果不关闭,文件会被程序一直霸占,不仅浪费内存,还可能导致数据丢失或别人无法修改。
二、 优雅永不过时:用 with 自动管理
每次都要记得写 close() 实在太反人类了,万一中间程序报错了,文件没来得及关怎么办?
Python 提供了一个极其优雅的“自动关门”语法——with 语句。这也是老司机们最推荐的写法!
# 使用 with,代码执行完毕后会自动帮你 close()with open("example.txt", "r") as f: content = f.read() print(content)
划重点: 以后写文件操作,无脑用 with 就对了,安全又省心!
三、 怎么读?一口气吞下 vs 细嚼慢咽
当文件很小的时候,用 f.read() 一口气读完没问题。但如果这是一个几个 GB 的超大日志文件,一口气读完会让电脑内存瞬间爆炸。
这时候,我们需要逐行读取:
with open("example.txt", "r") as f: for line in f: # strip() 用来脱掉每行末尾自带的“换行符”外套 print(line.strip())
利用 for 循环,Python 会乖乖地一行一行读,读完一行扔一行,轻盈又高效!
四、 写入文件:是“洗牌重来”还是“锦上添花”?
搞定了读,咱们来看看怎么往文件里写内容。写文件有两种最常用的模式:
1. 霸道总裁模式("w" - Write):覆盖写入
只要用 w 模式打开,不管文件里以前有什么,全部清空,从头开始写。如果文件本来不存在,它会帮你新建一个。
with open("output.txt", "w") as f: f.write("这是第一行,以前的内容都被我抹掉了!\n") f.write("这是第二行。\n")
2. 贴心暖男模式("a" - Append):追加写入
用 a 模式打开,以前的内容原封不动保留,新的内容会乖乖排在文件最末尾。
with open("output.txt", "a") as f: f.write("我是新来的,我排在最后面追加一行。\n")
(注:字符串里的 \n 是换行符,告诉文件在这里要回车换行。)
五、 核心速记表:文件模式(Mode)说明书
为了方便大家查阅,这里整理了最常用的 4 种文件模式:
| 模式字符 | 英文全拼 | 作用说明 | 文件不存在时 |
r | Read | 只读。只能看,不能改。 | ❌ 直接报错 |
w | Write | 写入。清空原内容,重新写。 | 🆕 自动新建文件 |
a | Append | 追加。在原内容最后继续写。 | 🆕 自动新建文件 |
r+ | Read+ | 读写。既能读也能写。 | ❌ 直接报错 |
六、 本讲总结
操作流程:打开 (open) ➡️ 读写 (read/write) ➡️ 释放资源。
最佳实践:抛弃手动的 close(),全面拥抱 with open(...) as f: 语法。
读写策略:大文件记得用 for 循环逐行遍历;写文件时要分清是覆盖(w)还是追加(a)。
掌握了文件读写,你的 Python 程序终于拥有了“长期记忆”。接下来的项目里,我们就可以拿真实的本地数据来大显身手啦!
我为你整理了一套《Python零基础保姆级教程》,这不只是干巴巴的理论,而是包含:
✅ 完整版 Python 零基础到精通完整代码
✅ 完整注释讲解,一键运行
👇 获取方式:
想要解锁 [Python保姆级教程] 的同学,可以点击下方赞赏支持博主,并在后台留言