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查找函数f(x)=0根的解决方法
May 07 Python
Python正规则表达式学习指南
Aug 02 Python
Python创建对称矩阵的方法示例【基于numpy模块】
Oct 12 Python
python 梯度法求解函数极值的实例
Jul 10 Python
使用python os模块复制文件到指定文件夹的方法
Aug 22 Python
Django上线部署之IIS的配置方法
Aug 22 Python
python zip()函数使用方法解析
Oct 31 Python
pycharm运行scrapy过程图解
Nov 22 Python
Python版中国省市经纬度
Feb 11 Python
Python换行与不换行的输出实例
Feb 19 Python
用什么库写 Python 命令行程序(示例代码详解)
Feb 20 Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
Apr 22 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
ThinkPHP中实例Model方法的区别说明
2010/08/21 PHP
深入PHP变量存储的详解
2013/06/13 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
2017/08/11 PHP
PHP实现的抓取小说网站内容功能示例
2019/06/27 PHP
phpfpm的作用和用法
2019/10/10 PHP
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
js实现快速分享功能(你的文章分享工具)
2013/06/25 Javascript
js实现下拉框选择要显示图片的方法
2015/02/16 Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
2015/04/10 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
2017/02/03 Javascript
jQuery中on方法使用注意事项详解
2017/02/15 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
2017/05/05 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
2017/11/22 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
vue2.0实现音乐/视频播放进度条组件
2018/06/06 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
如何在JavaScript中创建具有多个空格的字符串?
2020/02/23 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
[06:50]DSPL次级职业联赛十强晋级之路
2014/11/18 DOTA
Python入门篇之正则表达式
2014/10/20 Python
详解django三种文件下载方式
2018/04/06 Python
Django 路由系统URLconf的使用
2018/10/11 Python
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
卡西欧B级产品官方网站:Casio Outlet
2018/05/22 全球购物
屈臣氏乌克兰:Watsons UA
2019/10/29 全球购物
党校个人自我鉴定范文
2014/03/28 职场文书
运动会开幕词
2015/01/28 职场文书
学习保证书100字
2015/02/26 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
SQL实现LeetCode(176.第二高薪水)
2021/08/04 MySQL
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS
Nginx动静分离配置实现与说明
2022/04/07 Servers