爬虫学习之csv读取和存储
2024-09-02 14:32:26
一、读取
该读取主要使用到csv里面的Reader()、DictReader()方法,和引用io里面的StringIO进行对字符串进行封装
在处理网上的csv文件方式主要是有一下几方面:
• 手动把CSV 文件下载到本机,然后用Python 定位文件位置;
• 写Python 程序下载文件,读取之后再把源文件删除;
• 从网上直接把文件读成一个字符串,然后转换成一个StringIO 对象,使它具有文件的
属性。
最优处理方案:
虽然前两个方法也可以用,但是既然你可以轻易地把CSV 文件保存在内存里,就不要
再下载到本地占硬盘空间了。直接把文件读成字符串,然后封装成StringIO 对象,让
Python 把它当作文件来处理,就不需要先保存成文件了。
from urllib.request import urlopen
from bs4 import BeautifulSoup
from io import StringIO
import csv data = urlopen("http://pythonscraping.com/files/MontyPythonAlbums.csv").read().decode('ascii','ignore')
dataFile = StringIO(data)
csvReader = csv.reader(dataFile) for row in csvReader:
print(row)
通过引用StringIO进行字符串封装,然后进行读取该对象里面的内容,这样就不用在通过下载到本地,再进行读取本地文件操作
进一步优化,通过把字符串转换成字典模式
from urllib.request import urlopen
from bs4 import BeautifulSoup
from io import StringIO
import csv data = urlopen("http://pythonscraping.com/files/MontyPythonAlbums.csv").read().decode('ascii','ignore')
dataFile = StringIO(data)
dictReader = csv.DictReader(dataFile) for row in dictReader:
print(row)
通过csv内部的DictReader方法进行把字符串进行转换成字典,然后进行操作
二、存储
通过open函数进行打开已存在的csv文件,并指定编码格式,和读写操作方式,再通过csv内置的write方法写入到该文件
csvFile = open("./files/editors.csv", 'wt', newline='',encoding='utf-8')
writer = csv.writer(csvFile)
最新文章
- 在Application中集成Microsoft Translator服务之获取访问令牌
- DSO动态加载PHP模块到Apache服务器
- linux 搭建hexo博客
- (转载)delphi文件流
- C++ 我想这样用(五)
- csqlite编译相关配置问题
- css3图片墙
- Winform获取当前程序名称或路径
- C#)Windows Shell 编程系列5 - 获取图标
- getch()和getchar()之再讨论
- RA layer request failed
- STM32f030f4p6 内部flash 打包读写
- SQLServer之修改用户自定义数据库用户
- POJ 1208 The Blocks Problem --vector
- 《 动态规划_ 入门_最大连续子序列_HDU_1003 》
- taro之React Native 端开发研究
- 基于jQuery的新浪游戏首页幻灯片
- sql2008修改管理员与普通用户密码
- .Net Core EF Core之Sqlite使用及部署
- iOS:shareSDK第三方登录
热门文章
- 国外1.5免费空间000webhost申请方法
- Java泛型简明教程
- 安装JDK+Eclipse+Maven+Git/Gitee(windows系统和linux系统)
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 14. ASP.NET Core Identity 入门
- c语言函数参考
- Swift里计数相关的小细节
- SpringSercurity基础
- 7天学完Java基础之6/7
- iOS Swift3 用全局“宏”时要注意的问题
- c++ 语法解析