CSV文件:Comma-Separated Values,中文叫,逗号分隔值或者字符分割值,其文件以纯文本的形式存储表格数据。该文件是一个字符序列,可以由任意数目的记录组成,记录间以某种换行符分割。每条记录由字段组成,字段间的分隔符是其他字符或者字符串。所有的记录都有完全相同的字段序列,相当于一个结构化表的纯文本形式。 用文本文件、EXcel或者类似与文本文件的都可以打开CSV文件。
在爬虫中,可以把数据写入CSV文件,示例如下:
import csv #需要导入库
with open('data.csv','w') as fp:
writer = csv.writer(fp)#先传入文件句柄
writer.writerow(['id','name','age'])#然后写入
writer.writerow(['10001','mike','20'])#按行写入
writer.writerow(['10002','Bob','22'])
writer.writerow(['10003','Jordan','21'])
如果想修改列与列之间的分隔符,传入delimiter参数:
import csv #需要导入库
with open('data.csv','w') as fp:
writer = csv.writer(fp,delimiter = '*')#delimiter只能是一个字节的字符
writer.writerow(['id','name','age'])#然后写入
writer.writerow(['10001','mike','20'])#按行写入
writer.writerow(['10002','Bob','22'])
writer.writerow(['10003','Jordan','21'])
也可以先写标题,在写数据: 注意:数据是一个列表,并且用writerows()方法
一般情况下,爬虫的数据以字典居多:
import csv
with open('data.csv','w') as fp:
fieldnames = ['id','name','age'] #先定义字典里的key
#用DictWriter()方法,增加一个fieldnames
writer = csv.DictWriter(fp,fieldnames = fieldnames,delimiter = '+')
writer.writeheader()#先写入key
#按照字典的方式写入
writer.writerow({ 'id':'10001','name':'mike','age':'20'})
writer.writerow({ 'id':'10002','name':'Bob','age':'22'})
writer.writerow({ 'id':'10003','name':'Jordan','age':'21'})
读取CSV文件由两种方式: (1)第一种
import csv
with open('data.csv','r',encoding = 'utf8') as fp:
reader = csv.reader(fp)
for row in reader:
print(row)
(2)第二种
import pandas as pd #需要导入pandas库
df = pd.read_csv('data.csv')
print(df)