csv模块的使用

前言

CSV是数据处理中经常会用到的一种文件格式,一般也被叫做逗号分隔值文件,是一种纯文本文件,使用特定的结构来排列表格数据,可以使用 Excel 软件或者文本文档打开 。
csv模块 是 python标准库模块,无需手动安装,可以直接导入 import csv # 导入csv模块,此篇文章介绍csv模块的基本使用方法。

正文

1、csv模块写入数据

1.1、csv模块写入数据 使用流程

  1. 打开csv文件 file = open("xxx.csv", "w", newline="") # 打开文件
  2. 初始化写入对象 writer = csv.writer(file) # 初始化写入对象
  3. 写入数据 writer.writerow() & writer.writerows() # 写入数据

1.2、csv.writer()方法:写入数据

csv 文件写入用到的模块方法是 csv.writer(),该方法原型:csv.writer(csvfile, dialect='excel', **fmtparams)

1.2.1、writer.writerow() 方法: 单行写入

writerow([]) 单行写入,一次只能写入一行数据
示例:

with open("test.csv", "w") as f:  # 打开文件,后缀为.csvwriter = csv.writer(f)  # 初始化写入对象writer.writerow(["1", "1000"])  # 写入数据

1.2.2、writer.writerows()方法:多行写入

writerows([(),(),()]) 多行写入,一次写入多行数据
示例:

lst = [("1", "1000"), ("2", "998"), ("3", "1005")]
with open("test.csv", "w", newline="") as f:  # 打开文件,后缀为.csvwriter = csv.writer(f)  # 初始化写入对象writer.writerows(lst)  # 写入数据

注意: 需要加入newline=“”,否则每写入一行会有一空行;windows系统会出现bug,所以需要添加该语句,linux系统不存在该bug。

1.3、csv.DictWriter()方法:写入数据

DictWriter(file,[])两个参数为 打开的文件对象和csv 的列头行列表
示例:

data_list = [{"序号": "0",  "数据": 1000},{"序号": "1",  "数据": 998},{"序号": "2", "数据": 1005},
] # 定义数据列表,列表的每个元素都是字典
header_list = ["序号", "数据"] # 创建列头行header 列表
with open("test.csv", "w", newline="") as f:  # 打开文件,后缀为.csvwriter = csv.DictWriter(f,header_list)  # 初始化写入对象,将 header 列表作为参数传入writer.writeheader() # 写入列头writer.writerows(data_list)  # 写入数据

注意:
在写入正式数据前,需使用 writeheader()方法 写入列头

2、csv模块读取数据

2.1、csv模块读取数据 使用流程

  1. 打开csv文件 file = open("xxx.csv", "r", newline="") # 打开文件
  2. 初始化读取对象 reader = csv.reader(file)
  3. 处理读取的数据 list(reader) 将reader转化为list,方便进行遍历

2.2、csv.reader()方法:读取数据

reader(),以列表的形式返回读取的数据
示例:

with open('test.csv', 'r', newline='') as f: # 打开文件reader = csv.reader(f) # 创建reader对象for r in reader: # 输出信息print(r)
['1', '1000']
['2', '998']
['3', '1005']

2.3、csv.DictReader()方法:读取数据

DictReader(),以字典的形式返回读取的数据
示例:

with open('test.csv', 'r', newline='') as f:  # 打开文件reader = csv.DictReader(f) # 创建DictReader对象for r in reader: # 输出信息print(r)
{'序号': '0', '数据': '1000'}
{'序号': '1', '数据': '998'}
{'序号': '2', '数据': '1005'}

注意: 如果直接打印reader,会返回<csv.DictReader object at 0x000001F82718EF40>,需要对其进行转化 list(reader)

【Python学习笔记(五)】csv模块的使用相关推荐

  1. Python学习笔记五:控制语句

    Python学习笔记五:控制语句 Pycharm 开发环境的下载安装配置_项目管理 控制语句 Pycharm 开发环境的使用 Pycharm 下载和安装 激活和选择不同UI 风格 创建项目和初始化配置 ...

  2. python学习笔记4(模块

    python学习笔记4(模块) 一.模块 1.1 import语句 1.2 __name__属性 1.3 dir()函数 1.4 包 2.1 导入特定模块: 二.输入与输出 2.1 format使用 ...

  3. Python学习笔记__5章 模块

    # 这是学习廖雪峰老师python教程的学习笔记 1.概览 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,在Python中,一个.py文件就称之为 ...

  4. Python学习笔记--day09 函数 模块 (文件、路径操作)

    第二模块 函数&模块 第一模块主要是学习python基础知识,从第二模块开始就可以通过程序去解决工作中实际的问题. 函数,一个用于专门实现某个功能的代码块(可重用). 内置函数 len.bin ...

  5. Python学习笔记五:条件循环

    文章目录 一.再谈print和import 1. 打印多个参数 2. 导入时重命名 二.赋值魔法 1. 序列解包 2. 链式赋值 3. 增强赋值 三.代码块:缩进的乐趣 四.条件和条件语句 1. 这正 ...

  6. python 学习笔记8 (模块)

    Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python 代码段. 把相关的代码 ...

  7. Python学习笔记之常用模块总结,持续更新...

    阅读目录 1. 时间模块--datetime 2. 文件目录操作模块--os 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经 ...

  8. Python学习笔记-DNS处理模块dnspython

    DNS处理模块dnspython     dnspython是python实现的一个DNS工具包,它支持几乎所有的记录类型,可以用于查询.传输并动态更新ZONE信息,同时支持TSIG(事务签名)验证消 ...

  9. python学习笔记之常用模块用法分析

    内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(obj) 得 ...

  10. python学习笔记 day20 常用模块(六)

    序列化模块 在讲序列化模块之前,先来看序列化的概念: 我们在进行文件存储时 用的都是str字符串,但是在网络上传输时都是采用bytes类型: 序列化: 数据类型--->字符串类型 反序列化: 字 ...

最新文章

  1. Log4Net组件的应用详解
  2. UA MATH564 概率论 QE练习题2
  3. java投票输出票数最高前三名,给你喜欢的作品投票,票数前三名获本平台赠送书一本。|诗花朵朵...
  4. 判断远程图片是否存在的JavaScript代码
  5. JPA HttpMessageNotWritableException: Could not write content: Infinite recursion (StackOverflowError
  6. (八)boost库之异常处理
  7. js中函数声明先提升还是变量先提升
  8. 在MySQL数据库建立多对多的数据表关系
  9. android studio python_android studio的安装信息
  10. php 滑动 图片,JQuery图片滑动
  11. 2021年8月上中旬好文收藏(1)
  12. 如何使keystone更有效率
  13. 读《图解HTTP》有感-(HTTP报文内的HTTP消息)
  14. 【Mybatis】Mybatis三大组件之ResultSetHandler
  15. java smali_如何把java代码转换成smali代码
  16. c语言的log算法实现,C语言中有关log函数的算法
  17. 耳麦没声音,耳麦不能说话
  18. 微信小程序实现:输入手机号点击按钮查询手机号归属地
  19. DEBUG命令大全及实例(有改动)
  20. 最新hp笔记本驱动大全

热门文章

  1. 理解SMMU基本原理和基本概念
  2. 蚌埠经贸学校98计算机一班,蚌埠的科技贸易学校
  3. [2022]Facial Geometric Detail Recovery via Implicit Representation
  4. 房产中介小程序定制开发功能方案
  5. springboot利用QQ邮箱imap/smtp收发件
  6. c++的3D游戏笔录-基于panda3d(2)
  7. linux minit工作环境搭建
  8. matlab sift乘积量化,PQ(乘积量化)应用于ANN算法原理和代码解读
  9. Fiddler抓包(下载安装及使用)
  10. TensorRT - TensorRT was linked against cuBLAS/cuBLAS LT 11.6.1 but loaded cuBLAS/cuBLAS LT 11.5.4错误提