Python3编写网络爬虫10-数据存储方式三-CSV文件存储
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(['10001','mike',20]) writer.writerow(['10002','bod',22]) writer.writerow(['10003','jordan',21])
更改列与列之间分隔符 可以传入 delimiter参数 记得关闭文件
示例:
import csv with open('data.csv','w') as csvfile: writer = csv.writer(csvfile,delimiter=' ')#初始化写入对象 writer.writerow(['id','name','age'])#传入每行数据 writer.writerow(['10001','mike',20]) writer.writerow(['10002','bod',22]) writer.writerow(['10003','jordan',21])
同时写入多行 参数为二位列表
import csv with open('data.csv','w') as csvfile: writer = csv.writer(csvfile)#初始化写入对象 writer.writerow(['id','name','age'])#传入每行数据 writer.writerows([['10001','mike',20],['10002','bod',22],['10003','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':'10001','name':'mike','age':20}) writer.writerow({'id':'10002','name':'bod','age':22}) writer.writerow({'id':'10003','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':'10004','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)
在做数据分析时此种方法用的比较多,也是一种常用的数据存储方式,需要熟练掌握。