04 Python将"字符串" 数据 "追加" 写入CSV文件

  • 行文背景
  • 读取文件
  • 以行的方式追加写入csv文件
  • 补充:如何一次性读取多个csv文件呢?


行文背景

boss给我一堆数据,要求我去处理,可是文件很大,四五百MB,excel直接就崩溃,打不开我怎么处理?这是我的第一反应,后来想到可以用python将表头全部输出,但是吧,文件太多了,我该怎么输出为csv文件呢?

读取文件

首先想到的就是打开文件,以写的方式,然后读取里面的表头,表头在第一行,那么以行的方式读取即可。

f=open("myData.csv",'r')#以读的方式打开数据文件
st=f.readline()#读取文件当中的第一行
f.close()#关闭文件

注意,由于有中文,最好在后面加一个编码:

f=open("myData.csv",'r',encoding="utf-8")#以读的方式打开数据文件

当然使用读取为二进制流也不会报错,但是后面写入文件的时候要求是字符串,你还得把二进制流转换回来,不建议下面这样写:

f=open("myData.csv",'rb')#以读的方式打开数据文件

输出st,我发现前面和后面有空格,或者是说空行,那么使用strip()函数去除即可:

st=f.readline().strip()

st输出为:

python写入数据到prometheus python写入数据到csv 串行了_读取文件

接下来是写到某一个csv文件当中去,则先打开要写的文件,以写的方式打开,然后写入之前得到的表头那一行文件。

#myFormalData2.csv在与.py文件同级目录下,如果没有,则会自动生成。
#注意如果你在wps或者excel打开了那个文件,需要先关闭,否则写不了
f2=open("myFormalData2.csv",'w')
f2.write(st)

这样就自动写入行了,注意,我发现这里自动将st字符串中以逗号为分割写入到csv的列当中去了,如图:

python写入数据到prometheus python写入数据到csv 串行了_开发语言_02


但是你会发现,这样写永远只有一行的内容,我该如何追加到后面呢?

以行的方式追加写入csv文件

这里提供我参考的答主的信息(侵权删),该答主的csdn传送门:


python写入数据到prometheus python写入数据到csv 串行了_后端_03


也就是说,要以a的方式,具体看代码:

f2=open("myFormalData2.csv",mode='a')#mode='a'表示以追加的方式写入,而不是覆盖

好了,来看效果吧:

python写入数据到prometheus python写入数据到csv 串行了_开发语言_04

补充:如何一次性读取多个csv文件呢?

前面说了,答主的boss给了我好多文件,而且都特别大,那么我考虑将所有表头读取出来。可是每次对一个文件操作只能读取一行,可不可以让程序自己跑起来,读取所有的文件呢?

喜欢的话,点个赞再走吧!