0Pricing
Python Academy · 课时

写入文件与追加内容

安全地写入新数据,并向现有文件追加内容。

写入文件与追加内容 是 CoddyKit 上的免费 Python Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。

简介

向文件写入和追加内容,可以让程序在多次运行之间持久保存数据。

写入模式 'w'

open('out.txt', 'w') 会创建文件(如果文件已存在则清空其内容)。f.write('Hello') 会写入该字符串。
# with open('out.txt', 'w') as f:
#     f.write('Hello, World!')
print('write mode demo')

writelines()

f.writelines(list_of_strings) 会写入列表中的每个字符串。它不会自动添加换行符。
lines = ['line1\n', 'line2\n']
# with open('out.txt', 'w') as f:
#     f.writelines(lines)
print('writelines demo')

追加模式 'a'

open('log.txt', 'a') 会以追加模式打开文件——新数据会添加到末尾,而不会清空已有内容。
# with open('log.txt', 'a') as f:
#     f.write('new entry\n')
print('append mode demo')

write() 中的换行符

write() 不会自动添加换行符。您必须包含 \n:f.write('line\n')
# with open('out.txt', 'w') as f:
#     f.write('first line\n')
#     f.write('second line\n')
print('newline demo')

读写模式 'r+'

open(f,'r+') 会同时打开读取和写入功能。指针从开头开始——写入时会覆盖现有内容。
# with open('out.txt', 'r+') as f:
#     f.seek(0, 2)  # go to end
#     f.write('appended')
print('r+ demo')

刷新缓冲区

f.flush() 会强制将缓冲数据写入磁盘。对于需要实时输出的日志文件很有用。
# with open('log.txt', 'a') as f:
#     f.write('event\n')
#     f.flush()
print('flush demo')

使用 print() 写入文件

print('text', file=f) 使用 print() 的格式化方式将内容写入文件(会添加换行符)。这是 write() 的便捷替代方式。
# with open('out.txt', 'w') as f:
#     print('Hello', file=f)
print('print-to-file demo')

原子写入模式

先写入临时文件,然后将其重命名为最终路径。这样可以防止部分写入破坏目标文件。
import tempfile, os
# with tempfile.NamedTemporaryFile('w', delete=False) as f:
#     f.write(data); tmp = f.name
# os.replace(tmp, 'out.txt')
print('atomic write demo')

将 JSON 写入文件

import json; json.dump(obj, f, indent=2) 可以将 Python 数据整洁地序列化到 JSON 文件中。
import json
data = {'name': 'Alice', 'age': 30}
# with open('data.json', 'w') as f:
#     json.dump(data, f, indent=2)
print(json.dumps(data, indent=2))

二进制写入模式 'wb'

open('img.bin', 'wb') 会以二进制写入模式打开文件。请写入 bytes 对象:f.write(b'\x00\xff')
# with open('out.bin', 'wb') as f:
#     f.write(bytes([0, 255, 128]))
print('binary write demo')

快速检查

使用模式 'w' 打开现有文件时会发生什么?

回顾

模式 'w' 会截断文件,'a' 会追加内容,'r+' 会读取和写入。使用 write() 时显式加入 \n。print(file=f) 是一种便捷的替代方式。需要实时记录日志时请刷新缓冲区。

继续学习

做得很好!请继续下一课,持续进步。

常见问题解答

「写入文件与追加内容」课时是免费的吗?

是的 — 「写入文件与追加内容」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。

「写入文件与追加内容」这节课中我会学到什么?

安全地写入新数据,并向现有文件追加内容。 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Python Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「写入文件与追加内容」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Python Academy 课中编写并运行代码吗?

能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 打开与读取文件
  2. 写入文件与追加内容
  3. 使用 with 语句处理文件
  4. 使用 pathlib 处理文件路径
← 返回 Python Academy