0Pricing
Python Academy · 课时

读取和写入文件

使用 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. Path 对象
  2. 读取和写入文件
  3. 通配查找与迭代
  4. 路径操作
← 返回 Python Academy