爬虫学习之csv读取和存储
2017-02-16 14:36
239 查看
一、读取
该读取主要使用到csv里面的Reader()、DictReader()方法,和引用io里面的StringIO进行对字符串进行封装
在处理网上的csv文件方式主要是有一下几方面:
• 手动把CSV 文件下载到本机,然后用Python 定位文件位置; • 写Python 程序下载文件,读取之后再把源文件删除; • 从网上直接把文件读成一个字符串,然后转换成一个StringIO 对象,使它具有文件的 属性。
最优处理方案:
虽然前两个方法也可以用,但是既然你可以轻易地把CSV 文件保存在内存里,就不要 再下载到本地占硬盘空间了。直接把文件读成字符串,然后封装成StringIO 对象,让 Python 把它当作文件来处理,就不需要先保存成文件了。
1 from urllib.request import urlopen 2 from bs4 import BeautifulSoup 3 from io import StringIO 4 import csv 5 6 data = urlopen("http://pythonscraping.com/files/MontyPythonAlbums.csv").read().decode('ascii','ignore') 7 dataFile = StringIO(data) 8 csvReader = csv.reader(dataFile) 9 10 for row in csvReader: 11 print(row)
通过引用StringIO进行字符串封装,然后进行读取该对象里面的内容,这样就不用在通过下载到本地,再进行读取本地文件操作
进一步优化,通过把字符串转换成字典模式
1 from urllib.request import urlopen 2 from bs4 import BeautifulSoup 3 from io import StringIO 4 import csv 5 6 data = urlopen("http://pythonscraping.com/files/MontyPythonAlbums.csv").read().decode('ascii','ignore') 7 dataFile = StringIO(data) 8 dictReader = csv.DictReader(dataFile) 9 10 for row in dictReader: 11 print(row)
通过csv内部的DictReader方法进行把字符串进行转换成字典,然后进行操作
二、存储
通过open函数进行打开已存在的csv文件,并指定编码格式,和读写操作方式,再通过csv内置的write方法写入到该文件
1 csvFile = open("./files/editors.csv", 'wt', newline='',encoding='utf-8') 2 writer = csv.writer(csvFile)
相关文章推荐
- 爬虫学习之pdf读取和存储
- 爬虫学习5.1.2数据存储(无数据库)存储为CSV
- 【OpenCV学习】矩阵的单点读取与存储
- [VS C++学习] Microsoft Visual Studio存储/读取数据的默认路径
- C++读取csv文件并以map进行存储
- Android学习之文件存储读取
- PE文件数字签名信息读取存储及格式具体解释图之上(历史代码,贴出学习)
- OpenCV学习——矩阵的单点读取与存储
- python爬虫:使用Mongodb数据库存储数据学习笔记
- csv文件存储与读取
- android 学习笔记 将数据存储到SharedPreferences中 并且读取数据
- 读取CSV文件并存储到ArrayList中
- [VS C++学习] Microsoft Visual Studio存储/读取数据的默认路径
- C++学习笔记之由文本文件读取数据到vector模板建立的二维数组 并存储为新的文本文件
- 【ThinkPHP学习】ThinkPHP自动转义存储富文本编辑器内容导致读取出错
- java学习笔记之配置文件.properties文件的读取与存储
- iOS学习笔记3—NSKeyedUnarchiver进行本地数据的读取|存储
- PE文件数字签名信息读取存储及格式详解图之上(历史代码,贴出学习)
- Excel开发学习笔记:读取xml文件及csv文件
- SOAPUI 接口自动化学习笔记节选 如何用Groovy 脚本读取CSV 文件