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实现根据用户输入从电影网站获取影片信息的方法
Apr 07 Python
Python3之文件读写操作的实例讲解
Jan 23 Python
Python列表解析配合if else的方法
Jun 23 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
Nov 29 Python
python3.6下Numpy库下载与安装图文教程
Apr 02 Python
pymysql 开启调试模式的实现
Sep 24 Python
Python多线程模块Threading用法示例小结
Nov 09 Python
Python实现aes加密解密多种方法解析
May 15 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
Nov 17 Python
python 实现mysql自动增删分区的方法
Apr 01 Python
Python基础之元类详解
Apr 29 Python
python基于tkinter实现gif录屏功能
May 19 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 iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
PHP 飞信好友免费短信API接口开源版
2010/07/22 PHP
php知道与问问的采集插件代码
2010/10/12 PHP
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
深入eAccelerator与memcached的区别详解
2013/06/06 PHP
php 在线导入mysql大数据程序
2015/06/11 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
基于jquery的一个浮动框(扩展性比较好 )
2010/08/27 Javascript
尝试在让script的type属性等于text/html
2013/01/15 Javascript
javascript解析json实例详解
2014/11/05 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
2014/11/23 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
2015/08/25 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
javascript实现贪吃蛇经典游戏
2020/04/10 Javascript
vue2.x数组劫持原理的实现
2020/04/19 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
[51:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第二局
2016/03/03 DOTA
解决pycharm无法调用pip安装的包问题
2018/05/18 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
Pytorch 实现sobel算子的卷积操作详解
2020/01/10 Python
Python 实现自动获取种子磁力链接方式
2020/01/16 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
丝芙兰墨西哥官网:Sephora墨西哥
2020/05/30 全球购物
求职简历中个人的自我评价
2013/12/25 职场文书
带薪年假请假条
2014/02/04 职场文书
《一本男孩子必读的书》教学反思
2014/02/19 职场文书