【Python学习笔记(五)】csv模块的使用
csv模块的使用
前言
CSV是数据处理中经常会用到的一种文件格式,一般也被叫做逗号分隔值文件,是一种纯文本文件,使用特定的结构来排列表格数据,可以使用 Excel 软件或者文本文档打开 。
csv模块 是 python标准库模块,无需手动安装,可以直接导入 import csv # 导入csv模块
,此篇文章介绍csv模块的基本使用方法。
正文
1、csv模块写入数据
1.1、csv模块写入数据 使用流程
- 打开csv文件
file = open("xxx.csv", "w", newline="") # 打开文件
- 初始化写入对象
writer = csv.writer(file) # 初始化写入对象
- 写入数据
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模块读取数据 使用流程
- 打开csv文件
file = open("xxx.csv", "r", newline="") # 打开文件
- 初始化读取对象
reader = csv.reader(file)
- 处理读取的数据
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模块的使用相关推荐
- Python学习笔记五:控制语句
Python学习笔记五:控制语句 Pycharm 开发环境的下载安装配置_项目管理 控制语句 Pycharm 开发环境的使用 Pycharm 下载和安装 激活和选择不同UI 风格 创建项目和初始化配置 ...
- python学习笔记4(模块
python学习笔记4(模块) 一.模块 1.1 import语句 1.2 __name__属性 1.3 dir()函数 1.4 包 2.1 导入特定模块: 二.输入与输出 2.1 format使用 ...
- Python学习笔记__5章 模块
# 这是学习廖雪峰老师python教程的学习笔记 1.概览 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,在Python中,一个.py文件就称之为 ...
- Python学习笔记--day09 函数 模块 (文件、路径操作)
第二模块 函数&模块 第一模块主要是学习python基础知识,从第二模块开始就可以通过程序去解决工作中实际的问题. 函数,一个用于专门实现某个功能的代码块(可重用). 内置函数 len.bin ...
- Python学习笔记五:条件循环
文章目录 一.再谈print和import 1. 打印多个参数 2. 导入时重命名 二.赋值魔法 1. 序列解包 2. 链式赋值 3. 增强赋值 三.代码块:缩进的乐趣 四.条件和条件语句 1. 这正 ...
- python 学习笔记8 (模块)
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python 代码段. 把相关的代码 ...
- Python学习笔记之常用模块总结,持续更新...
阅读目录 1. 时间模块--datetime 2. 文件目录操作模块--os 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经 ...
- Python学习笔记-DNS处理模块dnspython
DNS处理模块dnspython dnspython是python实现的一个DNS工具包,它支持几乎所有的记录类型,可以用于查询.传输并动态更新ZONE信息,同时支持TSIG(事务签名)验证消 ...
- python学习笔记之常用模块用法分析
内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(obj) 得 ...
- python学习笔记 day20 常用模块(六)
序列化模块 在讲序列化模块之前,先来看序列化的概念: 我们在进行文件存储时 用的都是str字符串,但是在网络上传输时都是采用bytes类型: 序列化: 数据类型--->字符串类型 反序列化: 字 ...
最新文章
- Log4Net组件的应用详解
- UA MATH564 概率论 QE练习题2
- java投票输出票数最高前三名,给你喜欢的作品投票,票数前三名获本平台赠送书一本。|诗花朵朵...
- 判断远程图片是否存在的JavaScript代码
- JPA HttpMessageNotWritableException: Could not write content: Infinite recursion (StackOverflowError
- (八)boost库之异常处理
- js中函数声明先提升还是变量先提升
- 在MySQL数据库建立多对多的数据表关系
- android studio python_android studio的安装信息
- php 滑动 图片,JQuery图片滑动
- 2021年8月上中旬好文收藏(1)
- 如何使keystone更有效率
- 读《图解HTTP》有感-(HTTP报文内的HTTP消息)
- 【Mybatis】Mybatis三大组件之ResultSetHandler
- java smali_如何把java代码转换成smali代码
- c语言的log算法实现,C语言中有关log函数的算法
- 耳麦没声音,耳麦不能说话
- 微信小程序实现:输入手机号点击按钮查询手机号归属地
- DEBUG命令大全及实例(有改动)
- 最新hp笔记本驱动大全
热门文章
- 理解SMMU基本原理和基本概念
- 蚌埠经贸学校98计算机一班,蚌埠的科技贸易学校
- [2022]Facial Geometric Detail Recovery via Implicit Representation
- 房产中介小程序定制开发功能方案
- springboot利用QQ邮箱imap/smtp收发件
- c++的3D游戏笔录-基于panda3d(2)
- linux minit工作环境搭建
- matlab sift乘积量化,PQ(乘积量化)应用于ANN算法原理和代码解读
- Fiddler抓包(下载安装及使用)
- TensorRT - TensorRT was linked against cuBLAS/cuBLAS LT 11.6.1 but loaded cuBLAS/cuBLAS LT 11.5.4错误提