1. 前言
Hello,大家好
在日常与 Python 打交道过程中,不可避免会涉及到数据读写业务,例如做爬虫时,需要将爬取的数据首先存储到本地然后再做下一步处理;做数据可视化分析时,需要将数据从硬盘中读入内存上,再进行后续的数据清洗、可视化、建模等步骤
对数据进行读写操作时,对于存储对象我们有多种选择,最方便的是本地文档类型:csv、txt 等,优点是方便简单、但弊端也很明显:文档型数据易丢失、损坏,删除不可恢复,且不方便多人间数据共享;
另一大类存储对象为数据库,目前比较流性的持久化数据库为 MongoDB 和Mysql ;对比文档存储,数据库最大的优势就是:数据不易丢失且易检索,面对庞大数据量仅几行 SQL
语句即可实现 CRUD(增、读、改、删) 功能
在本期 Python 教程中,将汇总一下有关 Python 数据读写方式,涉及到的存储对象有四类:txt、csv、MongoDV以及MySQL
2. Python 文档读写
关于本地文档数据读写,本文列出两类常见文档类型:txt 及 csv ;测试数据来源于链家二手房房源,关于房源数据爬取详情参考旧闻 Python 采集了3000 条北京二手房数据,看看我都分析出来了啥?
2.1 txt 读写
在本文介绍的几种数据存储对象中,txt 读写是最简单的一种,关于读写方式这里我就不作详细介绍了,不太了解的小伙伴可以参考下方测试代码:
# txt 数据源,需记得加上 encoding='utf-8' 参数,防止乱码
dataSource = open('data.txt',encoding='utf-8',mode='r')
# txt 数据读写操作
savePath = 'save.txt'
f = open(savePath,encoding='utf-8',mode='w+')# 读取
for lineData in dataSource.readlines():
dataList = lineData.replace('\n','').split(',')
print(dataList)
f.write('\t'.join(dataList) +'\n')
f.close()
txt 读写整个流程都是借助文件流方式完成的,需要注意的是在读写过程中若出现中文乱码情况,需要加上参数encoding = 'utf-8'
即可有效避免:
2.2 csv 读写
与 txt 相比 ,Python爱好者更偏爱把数据存入 csv 或 xlsx,后者相对更为规范,尤其是面向数值数据,对于编程基础并不好的同学,不需要 Python 借助 Excel 可以直接进行可视化分析;
csv 在 Python 中有多种读写方式,下面实例中我列出其中常见的两种,一种是基于 python-csv
、另一种是基于pandas
csv 数据读取
读取测试时,是从 csv 中读入数据
方法一,借助python-csv
读取
# 利用 python-csv 实现数据读取
csvPath = 'save.csv'
with open(csvPath, newline='',encoding='utf-8') as csvfile:
spamreader = csv.reader(csvfile, delimiter=',', quotechar='|')
for row in spamr