Python写入文本文件主要依赖内置的open函数配合文件对象的write方法实现,整个过程不需要引入额外的第三方库,操作逻辑清晰易懂,适合各类场景下的文本数据存储需求。

基础写入操作:覆盖写入
最常用的写入模式是覆盖写入,打开文件时指定模式为w,如果目标文件不存在会自动创建,如果文件已存在则会清空原有内容再写入新内容。操作完成后需要关闭文件释放资源,也可以使用with语句自动管理文件生命周期。
下面是覆盖写入的基础示例:
# 覆盖写入示例
content = "这是要写入文本文件的第一行内容"
# 使用with语句打开文件,无需手动调用close方法
with open("test.txt", "w", encoding="utf-8") as file_obj:
file_obj.write(content)
追加写入模式
如果需要在原有文件内容后面添加新的内容,而不是清空原有内容,只需要把打开模式改为a即可。追加模式下如果文件不存在同样会自动创建,已存在则会在文件末尾追加新内容。
追加写入的示例代码如下:
# 追加写入示例
new_content = "n这是追加到文件末尾的新内容"
with open("test.txt", "a", encoding="utf-8") as file_obj:
file_obj.write(new_content)
写入多行内容
当需要写入多行内容时,有两种常用方式,一种是多次调用write方法,另一种是使用writelines方法传入可迭代的内容序列。需要注意writelines方法不会自动添加换行符,需要手动在内容中添加换行标识。
多行写入的示例:
# 多行写入示例
lines = ["第一行内容n", "第二行内容n", "第三行内容n"]
# 方式一:循环调用write
with open("multi_line.txt", "w", encoding="utf-8") as f:
for line in lines:
f.write(line)
# 方式二:使用writelines方法
with open("multi_line2.txt", "w", encoding="utf-8") as f:
f.writelines(lines)
常见注意事项
- 编码设置:写入中文内容时建议显式指定
encoding="utf-8",避免出现乱码问题,尤其是Windows系统下默认编码可能不是utf-8。 - 文件模式:
w模式会清空原有内容,操作前需要确认是否需要保留原文件内容,避免误删数据。 - 换行符:不同系统的换行符有差异,Python会自动处理换行符的转换,写入时直接使用
n即可。 - 异常处理:如果文件路径不存在或者没有写入权限,open操作会抛出异常,实际项目中可以添加try-except块处理异常。
下面是添加异常处理的写入示例:
# 带异常处理的写入示例
try:
with open("safe_write.txt", "w", encoding="utf-8") as f:
f.write("带异常保护的写入内容")
except IOError as e:
print(f"文件写入失败,错误信息:{e}")