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的设计模式编程
Mar 01 Python
tensorflow入门之训练简单的神经网络方法
Feb 26 Python
Django中Model的使用方法教程
Mar 07 Python
Python基于Floyd算法求解最短路径距离问题实例详解
May 16 Python
使用matplotlib画散点图的方法
May 25 Python
python的pandas工具包,保存.csv文件时不要表头的实例
Jun 14 Python
Python实用工具FuckIt.py介绍
Jul 02 Python
python plotly画柱状图代码实例
Dec 13 Python
python全局变量引用与修改过程解析
Jan 07 Python
Python sql注入 过滤字符串的非法字符实例
Apr 03 Python
PyQt5结合matplotlib绘图的实现示例
Sep 15 Python
python3中布局背景颜色代码分析
Dec 01 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实现快速排序法函数代码
2012/08/27 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
jquery遍历input取得input的name
2009/04/27 Javascript
jquery下json数组的操作实现代码
2010/08/09 Javascript
js 中 document.createEvent的用法
2010/08/29 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
jquery简单实现图片切换效果的方法
2015/05/12 Javascript
js自制图片放大镜功能
2017/01/24 Javascript
D3.js实现简洁实用的动态仪表盘的示例
2018/04/04 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
JS实现纸牌发牌动画
2021/01/19 Javascript
[01:21:58]守擂赛DOTA2第一周决赛
2020/04/22 DOTA
Python基于Matplotlib库简单绘制折线图的方法示例
2017/08/14 Python
Python网络爬虫神器PyQuery的基本使用教程
2018/02/03 Python
Python Scapy随心所欲研究TCP协议栈
2018/11/20 Python
解析Python的缩进规则的使用
2019/01/16 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
Python OpenCV图像指定区域裁剪的实现
2019/10/30 Python
使用tensorboard可视化loss和acc的实例
2020/01/21 Python
如何使用python传入不确定个数参数
2020/02/18 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
详解Django中异步任务之django-celery
2020/11/05 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
自荐信怎么写呢?
2013/12/09 职场文书
网站推广策划方案
2014/06/04 职场文书
团队激励口号
2014/06/06 职场文书
2015年度个人教学工作总结
2015/05/20 职场文书
婚宴来宾致辞
2015/07/28 职场文书
2019年最新七夕唯美祝福语(60条)
2019/07/22 职场文书