一、CSV文件

1、导入

由于是python自带的库,无需安装就可以使用,只要使用下面命令就可以导入

import csv
2 、使用方法
2.1 从csv文件读入数据
import csv
#使用open函数打开csv文件
with open('mc.csv','r')as f:#reader是一个迭代器,for循环来打印,返回的是列表reader = csv.reader(f)#第一行开始遍历,表示标题数据去除(自选)next(reader)for read in reader:#只打印第0行的数据data = read[0]print(data)
2.2 把数据写入csv文件
import csv
#写入的数据
headers = ['name', 'age', 'height']
value = [('张氏','13','160'),('李氏','18','180')
]
#使用open函数把数据写到csv文件(text.csv文件要在当前目录下,如果不在则填写路径)
with open('text.csv','w',encoding='utf-8',newline='') as f:#生成一个writer对象writer = csv.writer(f)#读取一行使用writerow方法writer.writerow(headers)#读取多行使用writerows方法writer.writerows(value)

执行后的结果:

name,age,height
张氏,13,160
李氏,18,180

小知识:csv文件的格式为逗号分隔值文件格式,可以通过excel打开,也可以另存为xls文件

3、实战

使用上次我们爬取的酷狗音乐TOP排行榜的数据来保存为csv文件,数据获取方面我就不再详细讲到,具体可以看最下面的链接,这次使用的是正则表达式来获取数据

import requests
from fake_useragent import UserAgent
import re
import csv
url = "https://www.kugou.com/yy/rank/home/1-8888.html?from=rank"
headers = {"User-Agent": UserAgent().random
}
#写入的csv文件的第一行
head =['排名', '歌名', '时长']response = requests.get(url, headers=headers)
response.content.decode("utf-8")
text = response.text
songnames = re.findall(r'<li class=" " title=.*?>.*?<a.*?>(.*?)</a>', text, re.S)
songtimes = re.findall(r'<span class="pc_temp_time">(.*?)</span>', text, re.S)#定义一个列表
list = []
count = 0
for i in zip(songnames,songtimes):songname,songtime = icount +=1#保存为元组的格式,之前小编保存为列表形式,但是数据出现了混乱,至今没有搞懂,有清楚的大佬记得留个言data = (count,songname,songtime.replace("\t","").replace("\n",""))list.append(data)with open("song.csv", 'w',newline='') as f:writer = csv.writer(f)writer.writerow(head)writer.writerows(list)

执行后的结果(如下图):

二、excel文件

1、导入
1.1 xlwt库:Python 用来在 Excel 写入数据和格式化数据的工具包,安装如下
pip install xlwt

注意:只能新建excel表格,不能修改

1.2 xlrd库:Python 用来在 读取Excel 数据的数据包,安装如下:
pip intall xlrd
2、使用方法
2.1 xlwt库:写入数据
#写入一个九九乘法表#导入xlwt库
import xlwt
#创建workbook对象
workbook = xlwt.Workbook(encoding='utf-8')
#使用add_sheet方法添加一个sheet页面
worksheet = workbook.add_sheet('sheet1')head = ['九九乘法表']
#写入主体部分
for j in range(0,1):#在worksheet下使用write方法,第一个参数为行,第二个参数为列,第三个为值worksheet.write(0,j,head[j])
for i in range(0,9):for j in range(0,i+1):worksheet.write(i+1,j,'%d * %d = %d'%(i+1, j+1, (i+1)*(j+1)))
#保存数据表
workbook.save('zaojiao.xls')
执行后的结果如下图:

2.2 xlrd库:读取数据
#一些常用的使用方法,这里只打印了所有行的值,其他的也可以试着打印出来import xlrd
#先新建一个excel对象
book = xlrd.open_workbook('zaojiao.xls')
#获取下标获取sheet页数
sheet = book.sheet_by_index(0)
#或者通过名字获取sheet页面
#sheet = book.sheet_by_name()#获取sheet中的行数
row = sheet.nrows
#获取sheet的列数
col = sheet.ncols#通过单元格获取
cell = sheet.cell(1,1).value
cell_1 = sheet.row(2)[1].value
cell_2 = sheet.col(1)[1].value#获取第0行的值
row_vaule = sheet.row_values(0)
#获取第0列的值
col_vaule = sheet.col_values(0)#获取行里面的值
for i in range(row):print(sheet.row_values(i))
执行后的结果(获取所有行的值):
['九九乘法表', '', '', '', '', '', '', '', '']
['1 * 1 = 1', '', '', '', '', '', '', '', '']
['2 * 1 = 2', '2 * 2 = 4', '', '', '', '', '', '', '']
['3 * 1 = 3', '3 * 2 = 6', '3 * 3 = 9', '', '', '', '', '', '']
['4 * 1 = 4', '4 * 2 = 8', '4 * 3 = 12', '4 * 4 = 16', '', '', '', '', '']
['5 * 1 = 5', '5 * 2 = 10', '5 * 3 = 15', '5 * 4 = 20', '5 * 5 = 25', '', '', '', '']
['6 * 1 = 6', '6 * 2 = 12', '6 * 3 = 18', '6 * 4 = 24', '6 * 5 = 30', '6 * 6 = 36', '', '', '']
['7 * 1 = 7', '7 * 2 = 14', '7 * 3 = 21', '7 * 4 = 28', '7 * 5 = 35', '7 * 6 = 42', '7 * 7 = 49', '', '']
['8 * 1 = 8', '8 * 2 = 16', '8 * 3 = 24', '8 * 4 = 32', '8 * 5 = 40', '8 * 6 = 48', '8 * 7 = 56', '8 * 8 = 64', '']
['9 * 1 = 9', '9 * 2 = 18', '9 * 3 = 27', '9 * 4 = 36', '9 * 5 = 45', '9 * 6 = 54', '9 * 7 = 63', '9 * 8 = 72', '9 * 9 = 81']Process finished with exit code 0
3、实战

使用上次我们爬取的酷狗音乐TOP排行榜的数据来写入到excel文件中,数据获取方面我就不再详细讲到,具体可以看最下面的链接,这次使用的是正则表达式来获取数据

import requests
from fake_useragent import UserAgent
import re
import xlwt
url = "https://www.kugou.com/yy/rank/home/1-8888.html?from=rank"
headers = {"User-Agent": UserAgent().random
}response = requests.get(url, headers=headers)
response.content.decode("utf-8")
text = response.text
songnames = re.findall(r'<li class=" " title=.*?>.*?<a.*?>(.*?)</a>', text, re.S)
songtimes = re.findall(r'<span class="pc_temp_time">(.*?)</span>', text, re.S)#定义一个列表
list = []
#排名
count = 0
for i in zip(songnames,songtimes):songname,songtime = icount +=1data = (count,songname,songtime.replace("\t","").replace("\n",""))list.append(data)#创建一个Workbook对象,这就相当于创建了一个Excel文件,名称为book,style_compression表示是否压缩
book = xlwt.Workbook(encoding='utf-8', style_compression=0)#在book中创建一个sheet对象,这就相当与在execl文件中创建了一张sheet表
#其中的‘酷狗音乐TOP’是这张表的名字,cell_overwrite_ok,表示是否可以覆盖单元格
sheet = book.add_sheet('酷狗音乐TOP', cell_overwrite_ok=True)#写入表头
col = ('排名', '歌曲名称', '时长')
for i in range(0, 3):sheet.write(0, i, col[i])#write方法,参数分别为行数,列数,传入的值#写入主体部分
for i in range(0, 22):datalist = list[i]for j in range(0, 3):sheet.write(i+1, j, datalist[j])#最后用save保存下来,文件名为Top.xls
book.save('Top.xls')

执行后的结果:

三、mysql数据库+SQLyog

1、安装
1.1 mysql数据库的安装(详细的安装教程可以在网上寻找)

推荐的安装教程:

https://blog.csdn.net/bobo553443/article/details/81383194

官网地址:

https://dev.mysql.com/downloads/mysql/
1.2 SQLyog的安装
百度网盘链接: https://pan.baidu.com/s/1tPzfbHl0GpHuVX-lmFPhzA 提取码: xrf6
官方链接:https://sqlyog.en.softonic.com/

SQLyog 是一个快速而简洁的图形化管理MYSQL数据库的工具

2、 导入
PyMySQL库: Python3.x 版本中用于连接 MySQL 服务器的库
pip install pymysql
3、基本使用
#在mysql的数据库中创建一个表格
import pymysql# 连接database
conn = pymysql.connect(host=“你的数据库地址(如localhost)”,user=“用户名”,password=“密码”,database=“数据库名”,port=“端口号”charset=“utf8”)# 得到一个可以执行SQL语句的光标对象cursor
cursor = conn.cursor()
# 得到一个可以执行SQL语句的游标
#cursor = conn.cursor()# 定义要执行的SQL语句
sql = """
CREATE TABLE `USER1` (
`id` INT auto_increment PRIMARY KEY ,
`name` CHAR(10) NOT NULL UNIQUE,
`age` TINYINT NOT NULL
)ENGINE=innodb DEFAULT CHARSET=utf8;  #注意:charset='utf8' 不能写成utf-8
"""# 执行SQL语句
cursor.execute(sql)#映射到数据库上
conn.commit()# 关闭光标对象
cursor.close()# 关闭数据库连接
conn.close()
3.实战

mysql数据库含有很多的知识点,涉及到数据库的操作和sql语句的编写,大家课后可以去看sql语句的编写方法,涉及到修改、删除、插入等等操作

使用上次我们爬取的酷狗音乐TOP排行榜的pa数据来写入到数据库中,数据获取方面我就不再详细讲到,具体可以看最下面的链接,这次使用的是xpath来获取数据

import pymysql
import requests
from lxml import etree
from fake_useragent import UserAgentheaders = {"User-Agent": UserAgent().random
}conn = pymysql.connect(host='localhost', user='root', password='小编的密码(这里隐去)',database='mydb', port=3306, charset='utf8')
cursor = conn.cursor()
#防止与mysql连接中断
conn.ping(reconnect=True)#定义一个函数来获取数据并返回一个列表
def get_data(url):list=[]response = requests.get(url,headers=headers)response.encoding='utf-8'trees = etree.HTML(response.text)ranks = trees.xpath("//div/ul/li/@data-index")songnames = trees.xpath('//div/ul/li/a[@class="pc_temp_songname"]/text()')songtimes = trees.xpath('//div/ul/li/span/span[@class="pc_temp_time"]/text()')for i in zip(ranks, songnames, songtimes):rank, songname, songtime = idata = (int(rank) + 1, songname, songtime.replace("\t", "").replace("\n", ""))list.append(data)return list#定义一个函数来把数据插入mysql数据库中
def insert_mysql(list):#sql语句,表名为song_list,各列名为rank,song,timesql = "insert into song_list(`rank`,`song`,`time`) values (%s,%s,%s)"#将得到的list进行遍历从下标取值,将(li[0], li[1], li[2])映射(%s,%s,%s)上for li in list:cursor.execute(sql, (li[0], li[1], li[2]))conn.commit()if __name__ == '__main__':url = "https://www.kugzhiou.com/yy/rank/home/1-8888.html?from=rank"alist = get_data(url)insert_mysql(alist)cursor.close()conn.close()
执行后的结果:

写在最后

数据获取的链接

数据获取的三种方法:https://blog.csdn.net/weixin_45127640/article/details/106120189
感谢你的观看,如果在这个过程的中遇到什么问题或者错误,可以随时留言,欢迎大家指正批评

Python——数据存储的三种方法相关推荐

  1. python教程怎么抓起数据_介绍python 数据抓取三种方法

    三种数据抓取的方法正则表达式(re库) BeautifulSoup(bs4) lxml *利用之前构建的下载网页函数,获取目标网页的html,我们以https://guojiadiqu.bmcx.co ...

  2. python调用cmd命令释放端口_详解python调用cmd命令三种方法

    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...

  3. 测试Python下载图片的三种方法

    简 介: 通过Python软件包对网络URL图片链接进行下载,可以加快后期处理.本文测试了urllib, request两个软件包对图片进行下载效果.如果图片原网页有了防止下载机制,是无法下载图片. ...

  4. python学习音频-详解python播放音频的三种方法

    第一种 使用pygame模块 pygame.mixer.init() pygame.mixer.music.load(self.wav_file) pygame.mixer.music.set_vol ...

  5. python可以播放音乐吗_详解python播放音频的三种方法

    第一种 使用pygame模块 pygame.mixer.init() pygame.mixer.music.load(self.wav_file) pygame.mixer.music.set_vol ...

  6. Python 数据降噪处理的四种方法——均值滤波、小波变换、奇异值分解、改变binSize

    Python 数据降噪处理的四种方法--均值滤波.小波变换.奇异值分解.改变binSize github主页:https://github.com/Taot-chen 一.均值滤波 1)算法思想 给定 ...

  7. Python创建多线程的三种方法

    Python创建多线程的三种方法 thread模块函数式创建线程 继承threading类创建多线程 threading模块函数式创建线程 使用总结 thread模块函数式创建线程 调用thread模 ...

  8. python求平方根的三种方法

    python求平方根的三种方法 题干描述 题目解答 题干描述 没啥好说的qwq,求根号下x,并舍弃小数部分,只保留整数 题目解答 方法一:不多bb,直接0.5次方(这应该是最没有营养的解法,面试官估计 ...

  9. python程序执行三种方式,Python运行程序的三种方法

    对于python中运行程序的方法,是我们初学时就已经掌握过的了,想必大家会的只是其中的一两种方式. 本篇对程序运行的三种方式进行了整理,分别是:Python的解释器.交互式运行和PyCharm,大家在 ...

最新文章

  1. linux下安装nginx,php,mysql
  2. 使用 TypeScript 自定义装饰器给类的属性增添监听器 Listener
  3. oracle 存储过程 stored procedure 查询一条记录或多条记录
  4. 枚举集合的EnumSet
  5. java写exe程序实例_2012软考软件设计师辅导:利用JAVA执行本地EXE文件
  6. java定向输出程序日志(输出到txt文件中)
  7. eclipse设置jsp文件编码默认为UTF-8
  8. Win10下安装并配置Python环境变量以及pip的安装、更新与使用
  9. vs2019社区版+qt5.14.2+Coin3D安装
  10. 计算机里没有硬盘 右下角有图标,电脑右下角显示硬盘图标怎么去掉<br?电脑 – 手机爱问...
  11. 图像特征之SIFT、HOG、LBP
  12. LU分解、矩阵求逆与解线性方程组(matlab代码)
  13. 技术博客|第13期:Server Side Logging:Hulu推荐系统中的特征漂移问题解决方法
  14. 动作Action详解
  15. java实现 洛谷 P1427 小鱼的数字游戏
  16. cpu排行计算机专业,cpu排行,教您电脑cpu性能排行榜
  17. (三)AsyncTask
  18. MySQL大厂优化方案轻松应对高并发!真牛!
  19. 服务器虚拟化和网络虚拟化关系,数据中心网络如何应对服务器虚拟化?
  20. 电脑设置开机自动启动软件

热门文章

  1. 读书笔记6-浪潮之巅(part1)
  2. 技术领导力,2019年文章精选55篇:中台架构、大佬故事、职场管理干货
  3. 正则表达式 - 选择、分组和向后引用
  4. 微信 - 微信怎么解除自动续费?
  5. 如何让人觉得你情商高
  6. 名帖05 吴叡 篆书《千字文》
  7. Java程序员2022必看面试题(含答案)
  8. 抖音最重要的四个知识点
  9. 音视频开发技术的进阶路线
  10. 前端如何提升To B产品用户体验