发布网友 发布时间:2022-04-23 21:49
共1个回答
热心网友 时间:2022-04-06 05:35
方法/步骤
首先创建一个csv_scripts.py文件来保存我们的脚本,如下面图中所示:
然后编辑脚本内容如下:
import csv
# 打开一个csv文件对象
with open('test.csv','w', newline='') as csvfile:
# 创建一个写入对象
spamwriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL)
#向csv文件里写入第一行
spamwriter.writerow(['spam']*5 + ['Baked Beans'])
# 向csv文件里写入第二行
spamwriter.writerow(['spam', 'Lovely Spam', 'Wonderful Spam'])
脚本内容编辑好以后,对应的解释内容都在#号注释后面,通过导入csv模块,然后打开一个test.csv文件对象,然后调用csv模块里的writer函数,返回一个writer对象 spamwriter,然后这个spamwriter对象就有了可以写入csv文件的能力。给它的writerow函数传递值,然后就会写入到对应的csv文件中。
但是在执行脚本之前,我们必须先创建一个csv文件,在linux上命令是:
touch test.csv
如下面图中所示,因为如果不提前创建文件,会报找不到这个文件的错误,如下面第二张图中所示:
由此可见,open函数打开文件时,文件不存在的时候不会自动创建新的文件。test.csv文件创建完毕以后,就可以执行这个脚本了,命令是是:
python csv_scritps.py
执行完毕后,打开csv文件,如下面所示:
从打开的test.csv文件中我们可以看到,第一次写入的值里['spam']*5是单独一列,['Baked Beans']是一列,而第二次写入的值里一个三个元素的列表是写了三列,这就说明,写入的时候,如果想对应值都是对其的,最好提前将他拼成指定长度的列表,而不能在writerow函数里拼接。
这里还可以出现的错误是,在open函数里没有带上'w'参数,代码如下面图中所示,这个时候如果直接执行脚本的话,会报错,not writeable,可见默认情况打开的csv文件对象是没有写权限的。
根据上面遇到的错误信息和格式信息,我们新写了个脚本,如下所示:脚本中定义了一行表头字段,然后定义了一个三个子列表的列表,子列表中是和表头长度相同的元素。
然后删除旧的test.csv文件,命令是:
rm test.csv
然后执行脚本,命令是:
python csv_scripts.py
在查看执行后的结果,可以看到,数据就排列的相对整齐了。以上就是python将数据写入到csv的全部内容。