本篇我们介绍如何使用 Python 内置的 csv 模块将数据写入 CSV 文件。

写入 CSV 文件

在 Python 代码中写入 CSV 文件的步骤如下:

  • 首先,使用内置的 open() 函数以写入模式打开文件。
  • 其次,调用 writer() 函数创建一个 CSV writer 对象。
  • 然后,利用 CSV writer 对象的 writerow() 或者 writerows() 方法将数据写入文件。
  • 最后,关闭文件。

以下代码实现了上面的步骤:

import csv# open the file in the write mode
f = open('path/to/csv_file', 'w')# create the csv writer
writer = csv.writer(f)# write a row to the csv file
writer.writerow(row)# close the file
f.close()

使用 with 语句可以避免调用 close() 方法关闭文件,从而使得代码更加精简:

import csv# open the file in the write mode
with open('path/to/csv_file', 'w') as f:# create the csv writerwriter = csv.writer(f)# write a row to the csv filewriter.writerow(row)

如果数据中包含非 ASCII 编码字符,需要在 open() 函数中指定字符编码。以下示例演示了如何将 UTF-8 字符写入 CSV 文件:

import csv# open the file in the write mode
with open('path/to/csv_file', 'w', encoding='UTF8') as f:# create the csv writerwriter = csv.writer(f)# write a row to the csv filewriter.writerow(row)

示例

以下示例演示了如何将数据写入 CSV 文件:

import csv  header = ['id', 'stu_id', 'course_name', 'course_score']
data = [1, 1, 'English', 100]with open('score.csv', 'w', encoding='UTF8') as f:writer = csv.writer(f)# write the headerwriter.writerow(header)# write the datawriter.writerow(data)

如果打开 score.csv 文件,我们会发现一个问题,就是两行数据之间存在一个额外的空白行:


为了删除多余的空白行,我们可以为 open() 函数指定关键字参数 newline=’’:

import csv  header = ['id', 'stu_id', 'course_name', 'course_score']
data = [1, 1, 'English', 100]with open('score.csv', 'w', encoding='UTF8', newline='') as f:writer = csv.writer(f)# write the headerwriter.writerow(header)# write the datawriter.writerow(data)

再次打开 score.csv 文件,显示的内容如下:

写入多行数据

如果想要一次写入多行数据,我们可以使用 writerows() 方法。例如:

import csv  header = ['id', 'stu_id', 'course_name', 'course_score']
data = [[1, 1, 'English', 100],[2, 1, 'Math', 95],[3, 2, 'English', 96]
]with open('score.csv', 'w', encoding='UTF8', newline='') as f:writer = csv.writer(f)# write the headerwriter.writerow(header)# write the datawriter.writerows(data)

新文件的内容如下:

DictWriter 类

如果写入的数据行由字典组成,我们可以使用 csv 模块 的DictWriter 类将数据写入文件。例如:

import csv# csv header
fieldnames = ['id', 'stu_id', 'course_name', 'course_score']# csv data
rows = [{'id': 1,'stu_id': 1,'course_name': 'English','course_score': 100},{'id': 2,'stu_id': 1,'course_name': 'Math','course_score': 95},{'id': 3,'stu_id': 2,'course_name': 'English','course_score': 96}
]with open('score.csv', 'w', encoding='UTF8', newline='') as f:writer = csv.DictWriter(f, fieldnames=fieldnames)writer.writeheader()writer.writerows(rows)

以上代码的执行过程如下:

  • 首先,定义两个存储字段名和数据行的变量。
  • 其次,调用 open() 函数以写入模式打开 CSV 文件。
  • 然后,创建一个新的 DictWriter 类实例。
  • 接着,调用 writeheader() 方法写入标题行。
  • 最后,使用 writerows() 方法写入数据行。

总结

  • csv.writer() 函数和 DictWriter 类都可以将数据写入 CSV 文件。

【Python入门教程】第73篇 写入CSV文件相关推荐

  1. Python从txt读取数据并写入csv文件

    将如下数据写入到csv文件中 data.txt id,name,salary,start_date,dept 1,Rick,623.3,2012-01-01,IT 2,Dan,515.2,2013-0 ...

  2. pythonpandas读取csv文件最后一行_简单小案例(一):使用Pandas在Python中读取和写入CSV文件...

    前期文章链接: YOLOv3论文 https://arxiv.org/pdf/1804.02767.pdf 正文: 有许多方法可以在Python中读写CSV文件.有几种不同的方法,例如,您可以使用Py ...

  3. [转载] pythonpandas读取csv文件最后一行_简单小案例(一):使用Pandas在Python中读取和写入CSV文件...

    参考链接: 使用Pandas在Python中读写CSV文件 前期文章链接: YOLOv3论文 https://arxiv.org/pdf/1804.02767.pdf 正文: 有许多方法可以在Pyth ...

  4. python语言入门教程-菜鸟学Python入门教程大盘点|7个多月的心血总结

    原标题:菜鸟学Python入门教程大盘点|7个多月的心血总结 阅读本文大概需要5分钟 菜鸟学python已经写了70几篇,入门的教程已经快写完了,我把入门的文章整理了一下,下面是入门篇的一些总结,也是 ...

  5. python入门教程(非常详细)-菜鸟学Python入门教程大盘点|7个多月的心血总结

    原标题:菜鸟学Python入门教程大盘点|7个多月的心血总结 阅读本文大概需要5分钟 菜鸟学python已经写了70几篇,入门的教程已经快写完了,我把入门的文章整理了一下,下面是入门篇的一些总结,也是 ...

  6. Python入门教程详解

    Python入门教程 目录 1. 简介 2. 安装 3. 基本语法 4. 数据类型 5. 条件语句 6. 循环 7. 函数 8. 模块 9. 异常处理 10. 文件输入输出 1. 简介 Python是 ...

  7. python爬取微博数据存入数据库_Python爬取新浪微博评论数据,写入csv文件中

    因为新浪微博网页版爬虫比较困难,故采取用手机网页端爬取的方式 操作步骤如下: 1. 网页版登陆新浪微博 2.打开m.weibo.cn 3.查找自己感兴趣的话题,获取对应的数据接口链接 4.获取cook ...

  8. python实现登录支付宝收能量_适合零基础人群学习的Python入门教程

    适合零基础人群学习的Python入门教程学什么?小编为大家准备的Python学习教程,课程主要讲解:Python核心编程.Linux基础.前端开发.Web开发.爬虫开发.人工智能等内容. 对于初学者想 ...

  9. python入门教程收藏_python入门教程:超详细保你1小时学会Python,快来收藏看看...

    简介:简介(转发文章+私信[Python]获取资料方式)1.Hello world安装完Python之后,打开IDLE(Python GUI) ,该程序是Python语言解释器,你写的语句能够立即运行 ...

最新文章

  1. c语言统计26个英文字母各出现个数,网上答案汇总与分析——【输入一串英文,统计各单词出现的个数】...
  2. 数字信号的最佳接收理论
  3. 深入探讨struts的ActionMessages消息机制(转)
  4. spring ioc加载流程
  5. Linux CentOS服务启动
  6. 关于java中::语法的理解
  7. 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----UDP篇
  8. Centos7 使用Docker 部署Nginx+mysql+tomcat+调试联通_03
  9. Xcode插件管理工具Alcatraz
  10. android布局layout中的一些属性
  11. 职场上别人只做不说的潜规则
  12. 伍德里奇计量经济学导论第5版笔记和课后答案
  13. SRCNN-pytoch代码讲解
  14. Coreldraw修改平面图独到漂亮见解就在这里了
  15. php flv 转成 mp4,PHP 利用 ffmpeg 把flv转成MP4格式(Linux)
  16. 微信订阅消息(后端)教程
  17. 单核CPU和多核CPU的理解
  18. C#语言实例源码系列-自定义ListBox背景
  19. access denied for user root@localhost using passw
  20. 汇编指令: JO、JNO、JB、JNB、JE、JNE、JBE、JA、JS、JNS、JP、JNP、JL、JNL、JNG、JG、JCXZ、JECXZ、JMP、JMP...

热门文章

  1. 吾生也有涯,而知也无涯。以有涯随无涯,殆已
  2. 【苹果家庭推送】(D-U-N-S)iMessage Number是一种及时静态的企业身份标识
  3. 机器人视觉成像主要工作过程
  4. 论文阅读《Understanding Procedural Text using Interactive Entity Networks》
  5. nmn美国下架,nmn对肝脏有副作用吗,有实验证明!
  6. 【OpenCV 例程 300篇】244. 特征检测之 BRIEF 特征描述
  7. 局域网内使用adb远程调试Android项目(Mac为例)
  8. 重置数据this.$options.data()
  9. 无lnternet_无线网络已连接 无internet访问
  10. 博图V17安装Drive_LIB_S7_1200_1500文件全局库,实现运动控制