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输出为:
接下来是写到某一个csv文件当中去,则先打开要写的文件,以写的方式打开,然后写入之前得到的表头那一行文件。
#myFormalData2.csv在与.py文件同级目录下,如果没有,则会自动生成。
#注意如果你在wps或者excel打开了那个文件,需要先关闭,否则写不了
f2=open("myFormalData2.csv",'w')
f2.write(st)
这样就自动写入行了,注意,我发现这里自动将st字符串中以逗号为分割写入到csv的列当中去了,如图:
但是你会发现,这样写永远只有一行的内容,我该如何追加到后面呢?
以行的方式追加写入csv文件
这里提供我参考的答主的信息(侵权删),该答主的csdn传送门:
也就是说,要以a的方式,具体看代码:
f2=open("myFormalData2.csv",mode='a')#mode='a'表示以追加的方式写入,而不是覆盖
好了,来看效果吧:
补充:如何一次性读取多个csv文件呢?
前面说了,答主的boss给了我好多文件,而且都特别大,那么我考虑将所有表头读取出来。可是每次对一个文件操作只能读取一行,可不可以让程序自己跑起来,读取所有的文件呢?
喜欢的话,点个赞再走吧!