以'a'模式用open()追加写入时,文件指针自动定位末尾、不覆盖原内容,不存在则创建;须指定encoding防编码错误,推荐with语句管理文件,写入需字符串且手动换行,'a'模式不可读,多进程需加锁。

使用 open() 函数以追加模式('a')写入数据,关键在于:文件指针自动定位到末尾,且不会覆盖原有内容;若文件不存在则自动创建。
基本语法和要点
调用方式为 open(file_path, 'a', encoding='utf-8')。必须显式指定 encoding(尤其含中文时),否则可能因默认编码不匹配导致 UnicodeEncodeError。打开后需用 .write() 或 .writelines() 写入,完成后建议用 with 语句自动关闭文件。
正确写法示例
推荐使用 with 语句,安全简洁:
with open('log.txt', 'a', encoding='utf-8') as f:
f.write('新日志:程序运行完成\n')
f.write('时间:2024-06-15\n')
- 每次
.write()不会自动换行,需手动加\n - 若要写入多行字符串,可先拼接再写入,或多次调用
.write() - 写入内容必须是字符串;数字、列表等需先转为字符串(如
str(123))
常见误区提醒
追加模式下无法读取文件('a' 是只写),也不支持 .seek(0) 回到开头写入。若需“先读再追加”,应分两步:先用 'r' 模式读,再用 'a' 模式写。
安全 Python 代码沙箱:在隔离的沙箱中执行任意 Python 代码,预装 requests、NumPy、pandas 库。返回 stdout、stderr。
-
open('data.txt', 'a+')可读可写,但初始指针仍在末尾,读之前需f.seek(0) - 不要用
'a'打开二进制文件——应改用'ab',且写入内容必须是bytes - 多进程/多线程同时追加写入同一文件时,可能出现内容交错,需额外加锁或改用日志模块
验证是否成功追加
写入后可重新以只读模式打开并打印全部内容:
with open('log.txt', 'r', encoding='utf-8') as f:
print(f.read())
看到原有内容在前、新内容在后,即表示追加成功。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










