Python 如何追加内容到文件?
open('file', 'a') 以追加模式打开,write() 写入不覆盖原内容;'a+' 可同时读。with 语句自动关文件。本文给出示例与模式对照。
用追加模式打开:open('log.txt', 'a')——写入的内容追加到文件末尾而不覆盖原内容;用 with 语句确保自动关闭。
基本写法
with open('app.log', 'a', encoding='utf-8') as f:
f.write('新的一行日志\n')
模式速查
| 模式 | 行为 |
|---|---|
'a' |
追加写,文件不存在则创建 |
'a+' |
追加写 + 可读 |
'w' |
覆盖写(清空原内容!) |
'x' |
排他创建,文件已存在则报错 |
常见配套
# 追加多行
lines = ['第一行', '第二行']
with open('data.txt', 'a') as f:
f.writelines(line + '\n' for line in lines)
# 立即刷盘(写日志关键场景)
f.write('critical event\n')
f.flush()
常见问题(FAQ)
Q:追加后读不到刚写的内容? 缓冲区未 flush——用 with 自动处理,或手动 f.flush()。
Q:多进程同时追加安全吗? 短消息在 POSIX 系统 O_APPEND 下基本原子;严格要求加文件锁(fcntl/msvcrt)。