Python学习【29】:Python csv 模块

  • 时间:2025-12-03 22:13 作者: 来源: 阅读:0
  • 扫一扫,手机访问
摘要:一、学前花絮前面的文章学习了Python Json文件的处理、一般文件的读取方法,本文针对csv文件的处理进行说明。和Json文件一样,csv文件也是很常用的文件格式。它的特点是以逗号为分隔符的文本文件,实则可以直接用Excel表格打开。我们会看到csv就是一种二维表格数据,第一行一般是表头标题,后面的行就是数据内容了。而如果你学过mysql数据库,那么csv也可以被认为是一张数据库表,第一行可认

一、学前花絮

前面的文章学习了Python Json文件的处理、一般文件的读取方法,本文针对csv文件的处理进行说明。和Json文件一样,csv文件也是很常用的文件格式。它的特点是以逗号为分隔符的文本文件,实则可以直接用Excel表格打开。我们会看到csv就是一种二维表格数据,第一行一般是表头标题,后面的行就是数据内容了。

而如果你学过mysql数据库,那么csv也可以被认为是一张数据库表,第一行可认为是数据库表的表结构定义(多少字段、字段类型)。通过Python语言很容易把csv文件导入到mysql数据库中。

二、Python csv 模块

CSV(Comma-Separated Values)文件是一种常见的文件格式,用于存储表格数据。

CSV 文件由纯文本组成,每一行代表表格中的一行数据,而每一列则通过逗号(或其他分隔符)分隔。

CSV 文件一般用于数据交换,由于它简单且易于处理。

Python 提供了一个内置的 csv 模块,用于读取和写入 CSV 文件。这个模块简化了处理 CSV 文件的过程,使得开发者可以轻松地操作表格数据。

2.1. 写入 CSV 文件

要写入 CSV 文件,可以使用 csv.writer 对象。以下是一个示例:

Python学习【29】:Python csv 模块

csv.writer对象

代码解释:

open('output.csv', mode='w', encoding='utf-8', newline=''):以写入模式打开名为 output.csv 的文件,并指定编码为 UTF-8。newline='' 用于避免在 Windows 系统中出现空行。

csv.writer(file):创建一个 csv.writer 对象,用于写入文件内容。

csv_writer.writerow(row):将每一行数据写入文件。

2.2读取 CSV 文件

要读取 CSV 文件,可以使用 csv.reader 对象。以下是一个简单的示例:

Python学习【29】:Python csv 模块

csv.reader对象

代码解释:

open('data.csv', mode='r', encoding='utf-8'):以只读模式打开名为 data.csv 的文件,并指定编码为 UTF-8。

csv.reader(file):创建一个 csv.reader 对象,用于读取文件内容。

for row in csv_reader:逐行读取文件内容,每一行数据会被解析为一个列表。

执行结果如下:

Python学习【29】:Python csv 模块

输出结果

以上输出可以看出,以列表形式读取数据。

2.3 使用字典读取和写入 CSV 文件

csv 模块还提供了 DictReader 和 DictWriter 类,它们可以将 CSV 文件的每一行解析为字典,或者将字典写入 CSV 文件。

使用 DictReader 读取 CSV 文件:

Python学习【29】:Python csv 模块

DictReader读取

输出结果如下:

Python学习【29】:Python csv 模块

输出结果

对比2、3的输出结果,我们可以看出2是保留了data文件的csv原始风格(第一行是标题,后面是数据);而3对于用户显得更友善,解释了数据的含义,本质上是把第一行当做key,其他行当做value。

使用 DictWriter 写入 CSV 文件:

Python学习【29】:Python csv 模块

DictWriter写入

2.4 csv 模块核心方法:

csv.reader()

从文件对象读取 CSV 数据

reader = csv.reader(file)

csv.writer()

将数据写入 CSV 文件

writer = csv.writer(file)

csv.DictReader()

将 CSV 行读取为字典(带表头)

dict_reader = csv.DictReader(file)

csv.DictWriter()

将字典写入 CSV 文件(需指定字段名)

dict_writer = csv.DictWriter(file, fieldnames)

csv.register_dialect()

注册自定义 CSV 格式(如分隔符)

csv.register_dialect('mydialect', delimiter='|')

csv.unregister_dialect()

删除已注册的方言

csv.unregister_dialect('mydialect')

csv.list_dialects()

列出所有已注册的方言

print(csv.list_dialects())

csv.reader 和 csv.writer 对象常用方法:

__next__()

迭代读取下一行(或使用 for 循环)

reader

writerow(row)

写入单行数据

writer

writerows(rows)

写入多行数据(列表的列表)

writer

csv.DictReader 和 csv.DictWriter 对象特性:

fieldnames

字段名列表(DictReader 自动从首行获取)

dict_reader.fieldnames

writeheader()

写入表头行(DictWriter 专用)

dict_writer.writeheader()

三、小结

本章内容针对csv文件的读写进行了专题讨论,csv文件是大数据工程项目中超级重大的一种数据,可以认为是一种二维表格数据,也可以认为是半结构化数据。介于结构化数据与非结构化数据之间。

让我们保持学习热烈,多做练习。我们下期再见!


Python学习【29】:Python csv 模块

快乐男孩

#python#

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】创建一个本地分支(2025-12-03 22:43)
【系统环境|】git 如何删除本地和远程分支?(2025-12-03 22:42)
【系统环境|】2019|阿里11面+EMC+网易+美团面经(2025-12-03 22:42)
【系统环境|】32位单片机定时器入门介绍(2025-12-03 22:42)
【系统环境|】从 10 月 19 日起,GitLab 将对所有免费用户强制实施存储限制(2025-12-03 22:42)
【系统环境|】价值驱动的产品交付-OKR、协作与持续优化实践(2025-12-03 22:42)
【系统环境|】IDEA 强行回滚已提交到Master上的代码(2025-12-03 22:42)
【系统环境|】GitLab 15.1发布,Python notebook图形渲染和SLSA 2级构建工件证明(2025-12-03 22:41)
【系统环境|】AI 代码审查 (Code Review) 清单 v1.0(2025-12-03 22:41)
【系统环境|】构建高效流水线:CI/CD工具如何提升软件交付速度(2025-12-03 22:41)
手机二维码手机访问领取大礼包
返回顶部