读取和写入文件
使用 read_text 和 write_text
读取和写入文件 是 CoddyKit 上的免费 Python Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。
以 pathlib 方式进行文件输入输出
对于简单情况,pathlib 路径可以直接读写文件,无需显式调用 open()。read_text、write_text、read_bytes 和 write_bytes 涵盖了常见需求。
write_text
write_text() 会将字符串写入文件;如果文件不存在则创建文件,如果已有内容则替换这些内容。它会返回写入的字符数。
from pathlib import Path
p = Path('greeting.txt')
n = p.write_text('Hello, pathlib!')
print('wrote', n, 'characters')read_text
read_text() 会打开文件、读取全部内容并关闭文件,然后将完整内容作为字符串返回。
from pathlib import Path
p = Path('greeting.txt')
p.write_text('Hello, pathlib!')
content = p.read_text()
print(content)无需手动关闭
这些辅助方法会替您打开和关闭文件,因此对于一次性的读写操作,您无需为 with open(...) 代码块编写冗余代码。
from pathlib import Path
p = Path('notes.txt')
p.write_text('line one')
print(p.read_text())指定编码
传入 encoding 参数来控制文本编码。UTF-8 是一种安全且明确的可移植选择。
from pathlib import Path
p = Path('uni.txt')
p.write_text('cafe resume', encoding='utf-8')
print(p.read_text(encoding='utf-8'))处理字节
处理二进制数据时,请使用 write_bytes() 和 read_bytes();它们处理的是 bytes 对象,而不是字符串。
from pathlib import Path
p = Path('data.bin')
p.write_bytes(b'\x00\x01\x02')
print(p.read_bytes())追加内容和高级模式
这些一次性辅助方法始终会覆盖原有内容。要追加内容或进行流式处理,请在 Path 上调用 open(),以获取可在 with 代码块中使用的普通文件对象。
from pathlib import Path
p = Path('log.txt')
p.write_text('start\n')
with p.open('a') as f:
f.write('more\n')
print(p.read_text())逐行读取
您可以先读取全部文本,再将其拆分成行;也可以打开路径并进行迭代。对于小文件,拆分 read_text() 的结果最简单。
from pathlib import Path
p = Path('multi.txt')
p.write_text('a\nb\nc\n')
for line in p.read_text().splitlines():
print('line:', line)创建父目录
如果父目录不存在,写入操作就会失败。请先在父目录上使用 mkdir(parents=True, exist_ok=True) 来创建整个文件夹树。
from pathlib import Path
p = Path('out/sub/file.txt')
p.parent.mkdir(parents=True, exist_ok=True)
p.write_text('done')
print(p.read_text())删除文件
使用 unlink() 删除文件。传入 missing_ok=True 可避免文件已经不存在时引发错误。
from pathlib import Path
p = Path('temp.txt')
p.write_text('bye')
print(p.exists())
p.unlink(missing_ok=True)
print(p.exists())读取、转换、写回
一种常见模式是读取文件、转换其中的文本,然后将其写回。pathlib 让这项操作可以简洁地用三行代码完成。
from pathlib import Path
p = Path('caps.txt')
p.write_text('hello world')
p.write_text(p.read_text().upper())
print(p.read_text())快速检查
如果文件已经存在,Path('a.txt').write_text('hi') 会执行什么操作?
回顾
您已经学会了使用 pathlib 读写文件。
write_text/read_text处理整个文件的字符串输入输出。write_bytes/read_bytes处理二进制数据。- 追加内容或进行流式处理时,请使用
open()。 - 使用
mkdir创建父目录,使用unlink删除文件。
常见问题解答
「读取和写入文件」课时是免费的吗?
是的 — 「读取和写入文件」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。
「读取和写入文件」这节课中我会学到什么?
使用 read_text 和 write_text 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Python Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「读取和写入文件」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Python Academy 课中编写并运行代码吗?
能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。