python的csv模块使用:读文件

要玩一个小的数据处理加绘图,我将数据保存成立csv的格式,用python自带的csv模块,这里记录一下学习的笔记。这里只用到了读取

python:3.8.10

参考文档:官方文档。官方文档很好用,而且有中文,推荐大家去看。

1. 读文件

以文件 ‘时间统计.csv’ 为例,格式如下。注意到我们这里使用 "|" 分割的。

data|week|start-time|stop-time
2021/10/30|周六|13:42|16:23
2021/10/30|周六|21:33|22:21
2021/10/31|周日|16:00|17:14
2021/10/31|周日|20:30|22:34
2021/11/1|周一|13:23|16:23

有两种读的方式:csv.reader() 和 csv.DictReader()。先直观看看两者的区别:

import csv
with open('时间统计.csv', encoding = 'utf-8', newline = '') as file:
    data1 = csv.reader(file, delimiter='|')
    data2 = csv.DictReader(file, delimiter='|')
    for row in data1:
    # for row in data2:
        print(row)
# 参数 delimiter,分隔符的选择,默认是逗号,此时为delimiter = ' '(中间有个空格)
# 参数 delimiter 属于 csv 的 dialect 类,dialect 类本身对于 reader 和 DictReader 对象来说是只读的
# csv.reader 的输出:列表的形式
['data', 'week', 'start-time', 'stop-time']
['2021/10/30', '周六', '13:42', '16:23']
['2021/10/30', '周六', '21:33', '22:21']
['2021/10/31', '周日', '16:00', '17:14']
# csv.DictReader 的输出:字典的形式,并且把我设定的首段默认为键,每一列对应的为键值
{'data': '2021/10/30', 'week': '周六', 'start-time': '13:42', 'stop-time': '16:23'}
{'data': '2021/10/30', 'week': '周六', 'start-time': '21:33', 'stop-time': '22:21'}

2. reader 对象和DictReader 对象的参数

reader:data1.line_num 已经读取的行数

DictReader:data2.line_num 已经读取的行数,data2.fieldnames 返回键的列表。

# 在原有代码的基础上加下面这行
print(data2.fieldnames)
# 输出为
['data', 'week', 'start-time', 'stop-time']
posted @ 2021-11-15 15:47  piukaty  阅读(90)  评论(0编辑  收藏  举报