当前位置:首页>python>零基础学Python第二十二课:让数据永存!文件读写与IO操作全解

零基础学Python第二十二课:让数据永存!文件读写与IO操作全解

  • 2026-09-30 12:15:53
零基础学Python第二十二课:让数据永存!文件读写与IO操作全解

🌟 导读欢迎来到 Python 学习的第二十二站。

在前面的二十多节课里,我们写的所有代码和数据,都存在电脑的“内存”里。这意味着只要程序一关,或者电脑一停电,你辛辛苦苦算出来的数据就瞬间灰飞烟灭了。

如果我想把爬虫抓到的数据存进一个 .txt 文本里,或者读取电脑桌面上的一份备忘录,该怎么做呢?今天,我们就来学习 Python 与硬盘打交道的桥梁——文件操作(I/O)。带你轻松搞定文件的打开、读取、写入与关闭!🚀

🚪 1. 开门与关门:基础的 open()

要把大象装冰箱,总共分三步:打开冰箱、把大象塞进去、关上冰箱。Python 操作文件也是完全一样的套路!

要想操作文件,第一步必须用 open() 函数把文件打开,并明确告诉电脑你想干嘛(读还是写?)。

# 1. 打开文件(开门)# "test.txt" 是文件名,"r" 代表 read(只读模式)# encoding="utf-8" 极其重要!防止读取中文时变成乱码!file = open("test.txt", "r", encoding="utf-8")# 2. 读取文件内容(操作数据)content = file.read()print(content)# 3. ⚠️ 极其重要:关闭文件(关门)file.close()

🔑 常见的三种核心模式(Mode):

  • "r" (Read):只读。 文件必须存在,否则报错。

  • "w" (Write):覆盖写。 如果文件存在,会无情清空里面所有内容再写!如果不存在,会自动帮你新建一个。

  • "a" (Append):追加写。 不会清空原内容,而是在文件的最末尾接着往下写(比如写日记、记录运行日志)。

✨ 2. 优雅的自动门:with 语句(⭐强烈推荐)

刚才的代码里,有一句 file.close() 非常致命。 如果你的程序在读取文件的过程中突然报错崩溃了,代码就永远走不到 close() 这一步。这会导致文件一直被后台占用,别人想删都删不掉,甚至会导致数据丢失!

为了解决这个痛点,Python 提供了一个极其优雅的魔法语法:with 语句。 你可以把它理解为一扇**“自动门”:只要你离开了这个缩进范围,无论程序是否报错,它都会100% 自动帮你安全关闭文件**!

# 🌟 以后在公司写代码,请永远使用这种写法!with open("test.txt", "r", encoding="utf-8") as file:    # 在这个缩进里面,尽情操作文件    content = file.read()    print(content)# 一旦退出了缩进,文件已经被自动 close() 啦!极其安全省心!print("文件已自动关闭。")

📖 3. 花式读取:read 家族三兄弟

当我们以 "r" 模式打开文件后,Python 给我们提供了三种读取内容的方式,应对不同的场景:

① read():一口吞下一次性把文件里所有的文字全部读出来,变成一个超级长的字符串。(适合文件比较小的情况。如果是几个 G 的电影剧本,用它会瞬间把电脑内存撑爆!)

② readline():细水长流每次只读一行内容。读完第一行,光标停在第二行开头,下次调用接着往下读。

withopen("test.txt", "r", encoding="utf-8") asfile:    line1 = file.readline()  # 读第一行    line2 = file.readline()  # 读第二行

③ readlines():切片打包一次性把所有内容全读出来,但是会贴心地把每一行切开,装进一个列表(List)里供你遍历。

withopen("test.txt", "r", encoding="utf-8") asfile:    lines_list = file.readlines()    print(lines_list)     # 输出类似于:['第一行内容\n', '第二行内容\n']

✍️ 4. 挥毫泼墨:write 与 writelines

当我们需要往文件里存数据时,要把模式换成 "w"(覆盖写)或 "a"(追加写)。

① write():写入一段字符串

withopen("diary.txt", "w", encoding="utf-8") asfile:    file.write("今天是学习 Python 的第22天!\n")    file.write("我学会了文件操作!")

(⚠️ 必踩坑预警:Python 不会自动帮你换行!如果你想换行写,必须手动在文字末尾加上换行符 \n!)

② writelines():写入一个列表如果你手里刚好有一个装满文字的列表,想直接塞进文件里,用它准没错。

sentences = ["第一句话\n", "第二句话\n", "第三句话\n"]with open("story.txt", "a", encoding="utf-8") as file:    # 把列表里的内容挨个写进去(依然要注意,列表里的文字自己得带 \n)    file.writelines(sentences)

📝 总结时刻

今天我们学会了让数据永久保存在硬盘上的方法:

  1. 模式选择:r 读,w 覆盖写,a 追加写。

  2. 操作规范: 坚决抛弃手动的 close(),全面拥抱安全优雅的 with open(...) as f:。

  3. 读文件:read() 全读,readline() 读一行,readlines() 读成列表。

  4. 写文件:write() 写字符串,writelines() 写列表(千万别忘了手动加换行符 \n,以及指定 encoding="utf-8" 防止中文乱码)。

👇 互动时间

来考考你的直觉!假设你的电脑桌面上有一个写满了重要账号密码的记事本 passwords.txt。 今天你一时糊涂,写下了这行代码:

with open("passwords.txt", "w", encoding="utf-8") as file:
    file.write("今天天气真好!")

请问,执行完这段代码后,你的 passwords.txt 文件会发生什么极其悲惨的事情?

A. 报错,因为文件里已经有密码内容了,不能写。 

B. "今天天气真好!" 会被加在密码列表的最后面。 

C. 里面的密码全没了,整个文件只剩下一句 "今天天气真好!"。

最新文章

随机文章