python如何把数据写入到csv文件中呢?python自带csv模块,可以用于最常见的csv文件格式的数据交换。在本文中,主要讨论的问题就是:python如何把list或者dict数据写入到csv文件中。

苏南大叔:python如何把数据写入csv文件?如何理解newline参数? - python-csv-writer
python如何把数据写入csv文件?如何理解newline参数?(图4-1)

大家好,这里是苏南大叔的“程序如此灵动”博客,这里讲述苏南大叔和计算机代码的事情,欢迎关注。本文测试环境:python@3.6.8win10

基本情况

下面是代码基本前提:

import csv
open('csv.csv', 'w', encoding='utf-8', newline='')

这个csv模块是python自带的,并不需要pip install。对于csvwriter来说,需要先open一个文件流。其中的wencoding='utf-8'都是比较好理解的。这里对新出现的参数newline=''做点小说明。

相关文章:

苏南大叔:python如何把数据写入csv文件?如何理解newline参数? - 数据结果
python如何把数据写入csv文件?如何理解newline参数?(图4-2)

如何理解newline=''

因为写入的文件是csv文件,实际上是个用逗号分割的记事本文件。每行就是一条数据,而不同的操作系统对于这个换行符定义是不同的。

操作系统符号
linux\n
windows\r\n
mac\r

这个地方的newline参数就是用于控制这个换行符是什么的。对于大家来说,把newline参数置空是最好的选择。至于为什么这么说,以后再做讨论。在本文中,大家只要无脑记得newline=''即可。

相关文章:

写入list数组

import csv
header = [":START_ID", ":TYPE", ":END_ID"]
rows = [
    ("苏南", "age", 28),
    ("老许", "moeny", 160000),
    ("虎子", "born", 2000)
]
with open('csv.csv', 'w', encoding='utf-8', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(header)
    writer.writerows(rows)

苏南大叔:python如何把数据写入csv文件?如何理解newline参数? - list数据写入csv
python如何把数据写入csv文件?如何理解newline参数?(图4-3)

写入dict字典

import csv
header = [":START_ID", ":TYPE", ":END_ID"]
row_dict=[
    {':START_ID':"苏南",':TYPE':'age',':END_ID':28},
    {':START_ID':"老许",':TYPE':'moeny',':END_ID':160000},
    {':START_ID':"虎子",':TYPE':'born',':END_ID':2000},
]
with open("csv2.csv",'w',encoding="utf-8",newline='') as f:
    writer2=csv.DictWriter(f,header)
    writer2.writeheader()
    writer2.writerows(row_dict)

苏南大叔:python如何把数据写入csv文件?如何理解newline参数? - dict数据写入csv
python如何把数据写入csv文件?如何理解newline参数?(图4-4)

特别说明

对于header的定义,这里有些特殊说明:

说明一:
中括号也可以写成小括号的形式...并不影响结果。

header = [":START_ID", ":TYPE", ":END_ID"]
header = (":START_ID", ":TYPE", ":END_ID") # 写小括号也可以,很奇怪啊

说明二:
对于知识图谱三元组来说,这些名字是固定的,如果名称换成别的,导入到neo4j的时候,就会触发错误,这是后话。
当然,如果您只是写入的普通的csv文件,那么完全可以按照您的喜好定义名字。

相关链接

总结

pythoncsv模块居然是内置的,不用使用pip install,这点有点出乎意料。更多python代码使用,请查看苏南大叔的博客:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。