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之编写类之二方法
Oct 11 Python
python获取外网ip地址的方法总结
Jul 02 Python
Python编写电话薄实现增删改查功能
May 07 Python
Python用Pillow(PIL)进行简单的图像操作方法
Jul 07 Python
java中两个byte数组实现合并的示例
May 09 Python
Python3中详解fabfile的编写
Jun 24 Python
python 将list转成字符串,中间用符号分隔的方法
Oct 23 Python
基于树莓派的语音对话机器人
Jun 17 Python
python爬虫爬取监控教务系统的思路详解
Jan 08 Python
PyQt5 界面显示无响应的实现
Mar 26 Python
pycharm 使用anaconda为默认环境的操作
Feb 05 Python
Python中for后接else的语法使用
May 18 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开启安全模式后禁用的函数集合
2011/06/26 PHP
php中执行系统命令的方法
2015/03/21 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
php测试kafka项目示例
2020/02/06 PHP
文本链接逐个出现的js脚本
2007/12/12 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
js调用后台servlet方法实例
2013/06/09 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
2016/02/19 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
Vue 按键修饰符处理事件的方法
2018/05/04 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
Vue项目总结之webpack常规打包优化方案
2019/06/06 Javascript
谈谈IntersectionObserver懒加载的具体使用
2019/10/15 Javascript
Javascript异步流程控制之串行执行详解
2020/09/27 Javascript
vue脚手架项目创建步骤详解
2021/03/02 Vue.js
低版本中Python除法运算小技巧
2015/04/05 Python
深入解读Python解析XML的几种方式
2016/02/16 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
python 变量初始化空列表的例子
2019/11/28 Python
利用pyecharts读取csv并进行数据统计可视化的实现
2020/04/17 Python
python TCP包注入方式
2020/05/05 Python
python中的插入排序的简单用法
2021/01/19 Python
请问如下代码执行后a和b的值分别是什么
2016/05/05 面试题
最新的咖啡店创业计划书
2013/12/30 职场文书
幼儿园教师辞职信
2014/01/18 职场文书
人力资源部经理的岗位职责
2014/03/04 职场文书
事业单位分类改革实施方案
2014/03/21 职场文书
市场营销工作计划书
2014/09/15 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js