csv模块专门用来读写数据,详情见 python文档
import csv
读文件
- reader方法
with open('./data.csv', 'r') as f: reader = csv.reader(f) # python 2 header = reader.next() # python 3x 使用python内置的next header = next(reader) #获取真正的数据 for row in reader: print(row) # 打印每一行,列表类型,只能按位置索引
稍微介绍一下next(iterable, [default ])
函数,它是python3x内置的,用于遍历可迭代对象的方法,其中iterable
可以使字符串、列表、字典、元祖、集合等。若default
给出,那么遍历到头时返回这个值,不然就抛异常。
这让我想到了字典的get()
方法,它也有类似作用。比如,
# 如果dic里面没有key1这个键,那就返回我们指定的0
dic.get('key1', 0)
- DictReader方法
with open('./data.csv', 'r') as f: reader = csv.DictReader(f, delimeter=';') for dic in reader: print(dic.items()) # 每行按字典返回,按键索引
写文件
跟读对应, 写操作也有两个方法
-
writer方法,适用列表的列表
with open('./data.csv', 'w') as f: header = ['col1', 'col2', ...] writer = csv.writer(f) writer.writeheader(header) for row in row_list: writer.writerow(row) # 或直接调用 writer.writerows(row_list)
-
DictWriter方法,适用字典列表
with open('./data.csv', 'w') as f: dictwriter = csv.DictWriter(f) dictwriter.writeheader(dic_list[0].keys()) for dic in dic_list: writer.writerow(dic) # 或者一次性写入,直接调用 wrier.writerows(dic_list)
都是些比较基础的操作,在这里记录一下。如果你觉得有帮助,就更好了。