Python CSV文件模块的使用案例分析


Posted in Python onDecember 21, 2019

本文实例讲述了Python CSV文件模块的使用。分享给大家供大家参考,具体如下:

1、CSV模块使用流程

1、导入模块

impport CSV

2、打开文件(xxx.csv)

with open('xxx.csv','a',encoding='utf-8') as f:
  • 1、a和 a+   ‘追加'功能

a  追加写

a+ 追加写读(先写后读)

  • 2、r 和 r+  

r 只读

r+读写,先读后写

  • 3、w,w+

w 只写

w+写读 先写后读

3、初始化写入对象

writer = csv.wirter()

4、写入数据

writer.writerow(['孙悟空', '兰陵王'])

案例:

猫眼电影top10榜单的爬取

1、网址:url

2、目标:爬取自己想要的文件

3、保存本地:csv文件

4、步骤

  • 1、找url规律

第一页:https://maoyan.com/board/4?offset=0

第4页:https://maoyan.com/board/4?offset=30

第n页:offset=(n-1)*10

  • 2、写正则表达式

'<div class="movie-item-info".*?title="(.*?)".*?class="star">(.* ?)</p>.*?class="releasetime">(.*?)</p>',re.S

练习:爬取猫王top10信息

from urllib import request
import re
import time
import csv
class MaoyanSpider(object):
   def __init__(self):
    self.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"}
    self.page = 1
    # 用来计数
   def get_page(self, url):
    req = request.Request(url, headers=self.headers)
    res = request.urlopen(req)
    html = res.read().decode('utf-8')
    # 直接调用解析函数
    self.parse_page(html)
   def parse_page(self,html):
     p=re.compile('<div class="movie-item-info">.*?title="(.*?)".*?class="star">(.*?)</p>.*?class="releasetime">(.*?)</p>',re.S)
     #p=re.compile('<div class="movie-item-info">.*?title="(.*?)".*?class="star">(.* ?)</p>.*?class="releasetime">(.*?)</p>',re.S)
     r_list = p.findall(html)
     # 直接调用保存函数
     # r_list:[('霸王别姬','张国荣','1993'),(),()]
     self.write_csv(r_list)
  # 保存数据函数
   def  write_csv(self,r_list):
     with open('猫眼电影top10.csv','a') as f:
      writer = csv.writer(f)
      # 依次写入每个电影信息
      for r_t in r_list:
        film = [
          r_t[0].strip(),
          r_t[1].strip(),
          r_t[2].strip()
          ]
        writer.writerow(film)
  #主函数
   def work_om(self):
     for pn in range(0,41,10):
      url = 'https://maoyan.com/board/4?offset=%s'%str(pn)
      self.get_page(url)
      print('第%d页爬取成功'%self.page)
      self.page += 1
      time.sleep(4)
if __name__ =='__main__':
  begin = time.time()
  spider = MaoyanSpider()
  spider.work_om()
  end = time.time()
  print("执行时间%.2f"%(end - begin))

运行截图:

Python CSV文件模块的使用案例分析

更多Python相关内容感兴趣的读者可查看本站专题:《Python操作Excel表格技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python的dict,set,list,tuple应用详解
Jul 24 Python
详解Python命令行解析工具Argparse
Apr 20 Python
深入理解NumPy简明教程---数组3(组合)
Dec 17 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
Mar 02 Python
python3实现字符串的全排列的方法(无重复字符)
Jul 07 Python
pandas分区间,算频率的实例
Jul 04 Python
Python迭代器Iterable判断方法解析
Mar 16 Python
jupyter notebook 实现matplotlib图动态刷新
Apr 22 Python
django正续或者倒序查库实例
May 19 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
Nov 28 Python
Python用摘要算法生成token及检验token的示例代码
Dec 01 Python
Python学习开发之图形用户界面详解
Aug 23 Python
python实现的分析并统计nginx日志数据功能示例
Dec 21 #Python
Python数据持久化存储实现方法分析
Dec 21 #Python
python cv2截取不规则区域图片实例
Dec 21 #Python
Python lxml模块的基本使用方法分析
Dec 21 #Python
python Manager 之dict KeyError问题的解决
Dec 21 #Python
tornado+celery的简单使用详解
Dec 21 #Python
Python selenium的基本使用方法分析
Dec 21 #Python
You might like
php使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
php的memcache类分享(memcache队列)
2014/03/26 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
图片完美缩放
2006/09/07 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
深入理解Javascript动态方法调用与参数修改的问题
2013/12/10 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
VUEJS实战之利用laypage插件实现分页(3)
2016/06/13 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
2017/03/17 Javascript
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
2017/06/01 jQuery
webpack教程之webpack.config.js配置文件
2017/07/05 Javascript
Vue中自定义全局组件的实现方法
2017/12/08 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
Vue父子组件双向绑定传值的实现方法
2018/07/31 Javascript
python基于queue和threading实现多线程下载实例
2014/10/08 Python
Python常用的爬虫技巧总结
2016/03/28 Python
Python 编码规范(Google Python Style Guide)
2018/05/05 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
虚拟机下载python是否需要联网
2020/07/27 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
TripAdvisor印尼站:全球领先的旅游网站
2018/03/15 全球购物
加拿大探亲邀请信
2014/01/28 职场文书
关于读书的演讲稿
2014/05/07 职场文书
护士求职信范文
2014/05/24 职场文书
代理人委托书
2014/08/01 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
python urllib库的使用详解
2021/04/13 Python
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL