3.CSV文件存储

CSV 全称 Comma-Separated Values 中文叫做逗号分隔值或者字符分隔值,文件以纯文本形式存储表格数据。
文件是一个字符序列 可以由任意数目的记录组成相当于一个结构化表的纯文本形式,它比Excel更加简洁,
XLS文本是电子表格,包含文本,数值,公式和格式等内容,CSV都没有 就是特定的字符分隔纯文本,结构简单清晰。

3.1 写入

示例:

import csv

with open('data.csv','w') as csvfile:
writer = csv.writer(csvfile)#初始化写入对象
writer.writerow(['id','name','age'])#传入每行数据
writer.writerow(['','mike',20])
writer.writerow(['','bod',22])
writer.writerow(['','jordan',21])

更改列与列之间分隔符 可以传入 delimiter参数 记得关闭文件

示例:

import csv

with open('data.csv','w') as csvfile:
writer = csv.writer(csvfile,delimiter=' ')#初始化写入对象
writer.writerow(['id','name','age'])#传入每行数据
writer.writerow(['','mike',20])
writer.writerow(['','bod',22])
writer.writerow(['','jordan',21])

同时写入多行 参数为二位列表

import csv

with open('data.csv','w') as csvfile:
writer = csv.writer(csvfile)#初始化写入对象
writer.writerow(['id','name','age'])#传入每行数据
writer.writerows([['','mike',20],['','bod',22],['','jordan',21]])

一般情况下 爬虫爬取的都是结构化数据 一般会用字典来表示 csv库也提供了字典的写入方式

示例:

import csv

with open('data.csv','w') as csvfile:
fieldname = ['id','name','age']#定义字段
writer = csv.DictWriter(csvfile,fieldnames=fieldname)#初始化字典写入对象
writer.writeheader()#写入头信息
writer.writerow({'id':'','name':'mike','age':20})
writer.writerow({'id':'','name':'bod','age':22})
writer.writerow({'id':'','name':'jordan','age':21})

输入中文 给 open() 加入参数 encoding='utf-8'

示例:

import csv

with open('data.csv','a',encoding='utf-8') as csvfile:
fieldname = ['id','name','age']#定义字段
writer = csv.DictWriter(csvfile,fieldnames=fieldname)#初始化字典写入对象
writer.writerow({'id':'','name':'小米','age':20})

3.2 读取

示例:

import csv

with open('data.csv','r',encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print(row)

在做数据分析时此种方法用的比较多,也是一种常用的数据存储方式,需要熟练掌握。