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

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:  # 打开文件,后缀为.csv
    writer = 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:  # 打开文件,后缀为.csv
    writer = 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:  # 打开文件,后缀为.csv
    writer = 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)

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年6月13日
下一篇 2023年6月13日

相关推荐