如何使用Python的open()函数以追加模式'a'向现有文件尾部添加内容?
- 内容介绍
- 文章标签
- 相关推荐
本文共计539个文字,预计阅读时间需要3分钟。
使用 `open` 函数以追加模式写入数据,关键在于:
基本语法和要点
调用方式为 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免费学习笔记(深入)”;
-
open('data.txt', 'a+')可读可写,但初始指针仍在末尾,读之前需f.seek(0) - 不要用
'a'打开二进制文件——应改用'ab',且写入内容必须是bytes - 多进程/多线程同时追加写入同一文件时,可能出现内容交错,需额外加锁或改用日志模块
验证是否成功追加
写入后可重新以只读模式打开并打印全部内容:
with open('log.txt', 'r', encoding='utf-8') as f: print(f.read())
看到原有内容在前、新内容在后,即表示追加成功。
本文共计539个文字,预计阅读时间需要3分钟。
使用 `open` 函数以追加模式写入数据,关键在于:
基本语法和要点
调用方式为 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免费学习笔记(深入)”;
-
open('data.txt', 'a+')可读可写,但初始指针仍在末尾,读之前需f.seek(0) - 不要用
'a'打开二进制文件——应改用'ab',且写入内容必须是bytes - 多进程/多线程同时追加写入同一文件时,可能出现内容交错,需额外加锁或改用日志模块
验证是否成功追加
写入后可重新以只读模式打开并打印全部内容:
with open('log.txt', 'r', encoding='utf-8') as f: print(f.read())
看到原有内容在前、新内容在后,即表示追加成功。

