15 分钟
Python 入门

写入文件

掌握文件写入模式 w 和追加模式 a

  • write() 写入内容
  • w 覆盖模式和 a 追加模式
  • writelines() 批量写入

写入模式 w

'w' 模式创建新文件或覆盖已有文件:

示例代码(可运行)

追加模式 a

'a' 模式在文件末尾追加,不覆盖原有内容:

示例代码(可运行)
🚫w 模式会清空文件!

用 'w' 模式打开已有文件,原内容会被立刻清空。想保留原内容就用 'a' 追加模式。

writelines()

示例代码(可运行)
预测输出
with open("t.txt", "w") as f:
    f.write("A")
with open("t.txt", "a") as f:
    f.write("B")
with open("t.txt") as f:
    print(f.read())
找 Bug用 w 模式会清空原文件!要追加内容应该用 a 模式。
# 想在文件末尾追加 with open("data.txt", "w") as f: f.write("新内容")
填空题填写空白处的代码
with open("a.txt", "") as f: f.write("追加内容")
选择题

用 'w' 打开已有文件会怎样?

选择题

关于 f.write(),下面说法正确的是?

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

print 把对象交给 sys.stdout 写出,显示时默认调用对象的 __str__;在交互环境直接回显变量走的是 __repr__(更偏「给开发者看的表示」)。sep 改分隔符、end 改结尾、file 可重定向到文件。面试常追问:生产环境为什么用 logging 而不是 print?因为日志有级别、能落盘、可结构化、可统一关闭,print 只适合临时调试。

挑战任务

文件写入

简单+50 XP

创建文件写入3个同学名字,每个一行,然后读取验证。

文件写入
2 个测试用例

课后作业

简单记事本

中等+20 XP

写入3行内容后读取显示。

简单记事本
1 个测试用例