使用python储存数据
一、前言
我们从互联网上采集到大量的数据,为了方便管理和分析我们需要将数据按照一个的格式存储起来,我们分析的数据常见格式分为两大类:第一,纯文本数据;第二、媒体数据。对于纯文本数据,我们经常将其储存为txt文档,csv文档以及储存到MySQL数据库中;对于其他如图片、视频、各种文档等媒体文件,我们就将其直接按原格式储存。下面使用举例的方式来介绍各种格式数据的存储。
二、储存文本信息
1、储存为txt文档
使用open()
函数以"w"
写入的方式打开一个txt文档,如果文件不存在则python会创建一个新的文档。然后写入数据即可。
file=open("test.txt","w")
file.write("new line")
file.close()
2、储存为csv文档
将python储存为csv文档时,需要使用csv
模块,具体代码如下:
import csv
csvFile=open("test.csv","w+")
try:
writer=csv.writer(csvFile)
writer.writerow(("number","number*2","number*number"))
for i in range(10):
writer.writerow((i,i*2,i*i))
finally:
csvFile.close()
3、储存到mysql数据库中
如果我们采集到的数据是结构化的数据,那么我们可以将其存储到mysql数据库中,方便管理和使用这些数据。我们需要使用第三方模块PyMySQL
,其下载地址为传送门。具体用法如下代码所示:
import pymysql
conn=pymysql.connect(host='11*.**3.2**.***',charset='utf8',user='***',passwd='****',db='mysql')
cur=conn.cursor()
cur.execute("USE ****")
#读取信息
cur.execute("select * from cars where id=1")
print(cur.fetchone())
# 写入信息
cur.execute("INSERT INTO cars (carName,carBrand) VALUES("思域","本田")")
cur.close();
conn.close();
三、储存媒体信息
储存媒体文件时需要引入urlretrieve
模块,使用这个模块可有使得我们在下载媒体文件时非常方便。urlretrieve(媒体的url,文件名)
具体使用如一下代码所示:
1,保存图片
from urllib.request import urlretrieve
html = urlopen("http://www.pythonscraping.com")
bsObj=BeautifulSoup(html)
imageLocation=bsObj.find("a",{"id":"logo"}).find("img")["src"]
urlretrieve(imageLocation,"logo.jpg")
2、保存视频
html=urlopen("http://tieba.baidu.com/p/5780097813")
bsObj=BeautifulSoup(html.read())
#print(bsObj)
videoLocation=bsObj.find("div",{"id":"post_content_120637727072"}).find("div",{"class":"video_src_wrapper"}).find("embed")["data-video"]
print(videoLocation)
urlretrieve(videoLocation,"video.mp4")
3、提取文档
urlretrieve("http://bkzs.hfut.edu.cn/upload/xxnr/1529564983510.xls","自主招生入围合格名单.xls")