Python 如何实时向文件写入数据(附代码)
作者:奥卡姆的剃刀 时间:2022-11-10 13:40:03
之前在做数据分析的过程中,需要对数据进行实时的写入,比如对新生成的数据写入之前已经生成的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的文件,注意:如果当前目录下没有这个文件,则会自动生成test3.csv文件,如果当前目录下已经有了test3.csv的文件,那么在新建结束后,会将原始的test3.csv文件覆盖。"a"
表示导入的数据不会讲test3.csv文件中的原始数据覆盖,即:在后面继续添加,如果需要覆盖,则将"a"改成"w"即可。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文件中。
来源:https://blog.csdn.net/yilulvxing/article/details/87478134
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
跟老齐学Python之print详解
人工智能学习Pytorch梯度下降优化示例详解
![](https://img.aspxhome.com/file/2023/6/72816_0s.png)
T-SQL篇如何防止SQL注入的解决方法
![](https://img.aspxhome.com/file/2023/9/106219_0s.png)
MySQL利用procedure analyse()函数优化表结构
Qt操作SQLite数据库的教程详解
![](https://img.aspxhome.com/file/2023/5/103085_0s.png)
Safari参考样式库之webkit
![](https://img.aspxhome.com/file/UploadPic/20097/26/webkit1-13s.jpg)
oracle使用sql语句增加字段示例(sql删除字段语句)
Vue2 响应式系统之深度响应
![](https://img.aspxhome.com/file/2023/6/133136_0s.png)
不同浏览器的兼容一些写法
Python连接字符串过程详解
js神秘的电报密码 哈弗曼编码实现
![](https://img.aspxhome.com/file/2023/3/136663_0s.png)
CSS设计之如何让数字字母自动换行
Mysql使用sum()函数返回null的问题详解
![](https://img.aspxhome.com/file/2023/2/107442_0s.png)
解析Python编程中的包结构
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
vue+webpack模拟后台数据的示例代码
![](https://img.aspxhome.com/file/2023/1/122001_0s.png)
Python3如何使用tabulate打印数据
![](https://img.aspxhome.com/file/2023/7/124137_0s.png)
pycharm安装深度学习pytorch的d2l包失败问题解决
![](https://img.aspxhome.com/file/2023/3/130993_0s.png)
通过缓存+SQL修改优雅地优化慢查询
![](https://img.aspxhome.com/file/2023/2/105482_0s.png)
python实现推箱子游戏
![](https://img.aspxhome.com/file/2023/8/121908_0s.jpg)