python爬虫学习之路(6)--数据存储之文件存储(txt,json,csv)

最近比较忙,没时间整理,今天先复习一下文件存储。

文件的打开方式:

r:只读方式打开
rb:以二进制只读方式打开一个文件
r+:以读写方式打开文件
rb+:以二进制读写方式打开一个文件
w: 以写入方式打开一个文件,如果以前不存在,则创建,存在则覆盖
wb:以二进制写入方式打开一个文件。如果以前不存在,则创建,存在则覆盖
a:追加方式打开文件。不存在创建,存在继续写。
同时还有ab,a+,wb+等,类比就好。

Text文件存储

with open('explore.txt','w',encoding= 'utf-8') as file:
	file.write('内容')

JSON文件存储

直接举个例子:

import json
str ='''
[{
	"name":"bandingfang",
	"gender":"male",
	"birthday":"1998-11-26"
	},{
	"name":"Selina",
	"gender":"female",
	"birthday":"1999-1-20"
	}]
'''
#这是一个str类型
print(type(str))

#loads()方法将字符串转为JSON对象(列表类型)
#注意,注意,注意,str中的属性必须用双引号包括,比如'name'则会报错
data = json.loads(str)

#读取内容,有两种方法,推荐第二种
	#若不存在报错
data[0]['name']
	#若不存在输出None
data[0].get('name')

#输出json,用dumps()方法将json对象转换为字符串类型
with open('data.json','w') as file:
	file.write(json.dumps(data))
	#保持json格式,建议使用,看着比较清晰,也就是带自动缩进
	file.write(json.dumps(data,indent=2))
	
#若果带中文
with open('data.json','w',encoding='utf-8') as file:
	file.write(json.dumps(data,indent=2,ensure_ascii=False))

#CSV文件存储
大体介绍一下:CSV文件是一个字符序列,有任意以某种分隔符分开的记录组成。每个记录由字段组成,字段间的分隔符是其他字符或字符串,常见的是制表符和逗号。
可以用excel打开。
直接举个例子:

import csv
with open('data.csv','w',encoding='utf-8') as csvfile:
	#delimiter指定列与列间分隔符,这里用’ ‘,默认为’,‘
	writer = csv.writer(csvfo;e.delimiter=' ')
	#写入一行
	writer.writerrow(['id','name','age'])
	#写入多行
	writer.writerrows([['1','a','10'],['2','b','12']])

	#写入字典
	fieldnames =['id','name','age']
	#初始化字典写入对象
	writer =csv.DictWriter(csvfile, fieldnames=fieldnames)
	#写入头信息
	writer.writeheader()
	writer.writerrows([['1','a','10'],['2','b','12']])
	

#读取
import csv
with open('data.csv','r',encoding='utf-8') as csvfile:
	reader =csv.reader(csvfile)
	for row in readers:
		print(row)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值