当前位置: 首页 > news >正文

Python csv 模块

csv 是 Python 标准库中专门处理 CSV(Comma-Separated Values)文件的模块,适合轻量级读写,不依赖外部库,广泛用于表格型数据的导入与导出。

常用功能

常用的属性和方法

方法说明示例
csv.reader()从文件对象读取 CSV 数据,for row in csv_reader:逐行读取文件内容,每一行数据会被解析为一个列表。reader = csv.reader(file)
csv.writer()将数据写入 CSV 文件writer = csv.writer(file)
csv.DictReader()将 CSV 行读取为字典(带表头),将 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()

常用参数说明

参数说明示例值适用方法
delimiter字段分隔符‘,’(默认), ‘\t’reader/writer
quotechar引用字符(包围特殊字段)‘"’(默认)reader/writer
quoting引用规则csv.QUOTE_ALL(全部引用)reader/writer
skipinitialspace忽略分隔符后的空格True/Falsereader
lineterminator行结束符‘\r\n’(默认)writer
dialect预定义的方言名称‘excel’(默认)所有方法

实例

  1. 读取 CSV 文件
import csvwith open('data.csv', 'r') as file:reader = csv.reader(file, delimiter=',')for row in reader:print(row)  # 每行是一个列表
  1. 写入 CSV 文件
data = [['Name', 'Age'], ['Alice', 25], ['Bob', 30]]with open('output.csv', 'w', newline='') as file:# newline='' 用于避免在 Windows 系统中出现空行。writer = csv.writer(file)writer.writerows(data)  # 写入多行
  1. 使用 DictReader 和 DictWriter(带表头)
# 读取
with open('data.csv', 'r') as file:dict_reader = csv.DictReader(file)for row in dict_reader:print(row['Name'], row['Age'])  # 通过字段名访问# 写入
fieldnames = ['Name', 'Age']
with open('output.csv', 'w', newline='') as file:dict_writer = csv.DictWriter(file, fieldnames=fieldnames)dict_writer.writeheader()  # 写入表头dict_writer.writerow({'Name': 'Alice', 'Age': 25})
  1. 自定义方言(如处理 TSV 文件)
csv.register_dialect('tsv', delimiter='\t', quoting=csv.QUOTE_NONE)with open('data.tsv', 'r') as file:reader = csv.reader(file, dialect='tsv')for row in reader:print(row)

✅ 小贴士

  • 需要读中文 CSV 可设:encoding=‘utf-8-sig’ 或 ‘gbk’
  • csv 模块速度快、兼容好,适合中小文件处理
  • 对于大型或分析型数据,建议用 pandas.read_csv() 等
http://www.lryc.cn/news/574431.html

相关文章:

  • 数组题解——​轮转数组【LeetCode】
  • 华为云 Flexus+DeepSeek 征文|文案魔盒・Emoji 菌:基于华为云 CCE 集群 Dify 大模型,创意文案智能生成助手
  • 数组题解——​最大子数组和​【LeetCode】(更新版)
  • 黑马程序员苍穹外卖DAY1
  • 【软考高级系统架构论文】论数据分片技术及其应用
  • C指针总结复习(结合deepseek)
  • 深入浅出Node.js后端开发
  • 【TCL 脚本学习 4 -- tcl 脚本 数组定义和使用】
  • 触摸屏(典型 I2C + Input 子系统设备)从设备树解析到触摸事件上报
  • Redis哨兵模式深度解析与实战部署
  • 用 GitHub Issues 做任务管理和任务 List,简单好用!
  • 【图像】ubuntu中图像处理
  • Redis精简总结|一主二从哨兵模式(工作机制)|集群模式|缓存的穿透雪崩击穿
  • NFS服务配置超详细版
  • 第一节 布局与盒模型-Flex与Grid布局对比
  • 考研408《计算机组成原理》复习笔记,第三章(2)——存储器的ROM、RAM(DRAM和SRAM)、磁盘硬盘
  • 鸿蒙容器组件 Row 全解析:水平布局技术与多端适配指南
  • 实现 “WebView2 获取word选中内容
  • Python-1-环境
  • SQLite3 在嵌入式系统中的应用指南
  • 华为云 Flexus+DeepSeek 征文|CCE 集群部署 Dify 平台:【工作流协同高质量知识库】搭建企业级教培行业 Agent 顾问
  • C3新增特性
  • springcloud/springmvc协调作用传递验证信息
  • 如何实现财务自由
  • qt常用控件--02
  • AI-Sphere-Butler之如何将豆包桌面版对接到AI全能管家~新玩法(一)
  • 功率器件的基本公式概念
  • React Native【实用教程】(含图标方案,常用第三库,动画,内置组件,内置Hooks,内置API,自定义组件,创建项目等)
  • 【机器学习1】线性回归与逻辑回归
  • iperf3使用方法