Python 实时向 CSV 和 TXT 文件追加数据的实现方法
本文介绍如何使用 Python 将新生成的数据实时追加到现有的 CSV 或 TXT 文件中。通过演示 csv 模块的 writerow 和 writerows 方法,以及文件打开模式 'a' 的使用,详细讲解了如何避免数据覆盖、处理换行符及正确关闭文件,确保数据持久保存。
在数据分析场景中,经常需要将新生成的数据实时写入到已存在的 txt 或 csv 文件中。这一过程看似复杂,实则通过简单的文件操作即可实现,以下是对该技术的总结。
1:实时向csv文件写入数据
若需生成一张包含特定字段的 csv 表,且后续需多次写入数据,建议采取以下安全策略:
- 首先写入表头字段;
- 随后再写入具体数据,以避免字段名被重复写入。
步骤1:创建文件并写入字段
import csv
with open("test3.csv","a",newline='') as csvfile:
writer = csv.writer(csvfile, delimiter=' ')
writer.writerow(["index","a_name","b_name"])上述代码参数解释:
test3.csv指定要创建的文件名为 test3.csv。需注意:若当前目录不存在该文件,系统会自动生成;若已存在,则原始文件会被覆盖。 "a"指定文件打开模式为追加模式,确保新数据不会覆盖 test3.csv 中的原始内容,而是添加在文件末尾。如需覆盖,可将参数改为 "w"。newline=’ ’指定 newline='',防止在 csv 文件的每一行前出现额外的空行。此参数必须添加,否则可能导致格式错误。
步骤2:写入数据
list1=[0,0,0]
list2=[1,1,1]
data_array=[[5,5,5],[1,2,3]]
with open("test3.csv","a",newline='') as csvfile:
writer = csv.writer(csvfile)
# 多行写入用writerows
writer.writerows(data_array)
# 单行逐个写入用 writerow
# writer.writerow(list1)
# writer.writerow(list2)
# 执行添加数据操作之后,要写close关闭,否则下次无法再次插入新的数据
csvfile.close()实时写入数据时,支持逐个写入或一次性写入多个数据。对于多行数据,应使用 writerows 方法;
对于单行数据,逐个写入则使用 writerow 方法,具体根据需求选择。务必调用 close() 关闭文件,否则下次无法再次插入新数据。
运行结果:

再次逐个写入,代码:
list1=[0,0,0]
list2=[1,1,1]
data_array=[[5,5,5],[1,2,3]]
with open("test3.csv","a",newline='') as csvfile:
writer = csv.writer(csvfile)
# 写入多行用writerows
# writer.writerows(data_array)
# 写入单行用 writerow
writer.writerow(list1)
writer.writerow(list2)
# 执行添加数据操作之后,要写close关闭,否则下次无法再次插入新的数据
csvfile.close()运行结果:

结果显示,逐个添加数据成功。

注意的地方
若非逐行写入,而是直接将数组一次性写入 csv 文件(即多行写入),则上述代码中应改用 writerows 方法。
2:实时向txt文件写入数据
实时向 txt 文件写入内容的过程,与创建 csv 文件并实时写入内容大致相同,主要区别在于需要手动添加换行符。
代码:
with open ('testing.txt','a') as f:
f.write('%s %s %s'%('姓名','国籍','金额'))运行结果:

结果生成了一个 testing.txt 的文件。
再次向txt文件中写入数据
代码:
with open ('testing.txt','a') as f:
f.write('\n') #换行
f.write('%s %s %d' %('张三','中国',2000))运行结果:

结果显示,已经将数据写入txt文件中。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













