1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Python爬虫:数据存储——CSV文件

Python爬虫:数据存储——CSV文件

时间:2022-06-29 01:43:07

相关推荐

Python爬虫:数据存储——CSV文件

一. CSV

CSV:Comma-Sparated Values,逗号分隔值(字符分隔值)以纯文本形式存储数据表格,可由任意数目的记录组成,各条记录以某种换行符分隔开

二. 使用规则

1. 写入

1.1 writer

初始化写入对象,以逗号分隔字段

1.2 writerow( )

传入每行数据

import csvwith open('data.csv','w') as csvfile:writer=csv.writer(csvfile)writer.writerow(['id','name','age'])writer.writerow(['1','a','20'])writer.writerow(['2','b','21'])writer.writerow(['3','c','22'])#运行结果id,name,age1,a,202,b,213,c,22

同时生成csv文件,可用Excel打开

1.3 writerows( )

同时传入多行数据,此时参数需要传二维列表。输出结果同上

import csvwith open('data.csv','w') as csvfile:writer=csv.writer(csvfile)writer.writerow(['id','name','age'])writer.writerows([['1','a','20'],['2','b','21'],['3','c','22']])

1.4 delimiter

修改列与列之间的分隔符delimiter=' ':列与列以空格分隔

import csvwith open('data.csv','w') as csvfile:writer=csv.writer(csvfile,delimiter=' ')writer.writerow(['id','name','age'])writer.writerow(['1','a','20'])writer.writerow(['2','b','21'])writer.writerow(['3','c','22'])

1.5 字典写入

fieldnames

DicWriterwriteheader

先定义3个字段,用fieldnames表示,然后将其传给DicWriter方法初始化一个字典写入对象,并将对象赋给writer变量。接着调用写入对象的writerheader方法先写入头信息,再调用writerow方法传入相应字典。输出结果同上。

import csvwith open('data.csv','w') as csvfile:fieldnames = ['id', 'name', 'age']writer=csv.DictWriter(csvfile,fieldnames=fieldnames)writer.writeheader()writer.writerow({'id':'1','name':'a','age':'20'})writer.writerow({'id':'2','name':'b','age':'21'})writer.writerow({'id':'3','name':'c','age':'22'})

1.6 追加写入

a:追加写入模式

import csvwith open('data.csv','a') as csvfile:fieldnames = ['id', 'name', 'age']writer=csv.DictWriter(csvfile,fieldnames=fieldnames)writer.writerow({'id':'4','name':'d','age':'22'})#运行结果id,name,age1,a,202,b,213,c,224,d,22

1.7 写入中文内容

制定编码模式

with open('data.csv','a',encoding='utf-8') as csvfile:

pandas库

安装

pip3 install pandas

使用:先定义几条数据,每条数据都是一个字典,然后将其组合成一个列表,赋值为data。接着使用pandas的DataFrame类新建了一个DataFrame对象,参数传入data,并把该对象赋值为df。最后调用df的to_csv方法将数据保存为csv文件

import pandas as pddata=[{'id':'1','name':'陈','age':'20'},{'id':'2','name':'李','age':'20'},{'id':'3','name':'张','age':'20'}]df=pd.DataFrame(data)df.to_csv('data.csv',index=False)

2. 读取

2.1 reader( )

通过遍历输出了文件中每行的内容,每一行都是一个列表如果CSV文件中包含中文,需要指定文件编码

import csvwith open('data.csv','r',encoding='utf-8') as csvfile:reader=csv.reader(csvfile)for row in reader:print(row)#运行结果['id', 'name', 'age']['1', '陈', '20']['2', '李', '20']['3', '张', '20']

2.2 pandas读取

read_csv( ):读取CSV文件

import pandas as pddf=pd.read_csv('data.csv')print(df)

tolist( ):只读数据

import pandas as pddf=pd.read_csv('data.csv')data=df.values.tolist()print(data)#运行结果[[1, '陈', 20], [2, '李', 20], [3, '张', 20]]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。