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黑帽编程 3.4 跨越VLAN详解
Sep 28 Python
python 列表删除所有指定元素的方法
Apr 19 Python
Python读写docx文件的方法
May 08 Python
selenium+python环境配置教程详解
May 28 Python
Python flask框架post接口调用示例
Jul 03 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
Aug 12 Python
python try except返回异常的信息字符串代码实例
Aug 15 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
Oct 21 Python
python路径的写法及目录的获取方式
Dec 26 Python
PyTorch的自适应池化Adaptive Pooling实例
Jan 03 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
Feb 28 Python
Pytest框架之fixture的详细使用教程
Apr 07 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数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
php解析base64数据生成图片的方法
2016/12/06 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
javascript实现日期时间动态显示示例代码
2015/09/08 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
2015/09/15 Javascript
Node.js中用D3.js的方法示例
2017/01/16 Javascript
JavaScript之DOM_动力节点Java学院整理
2017/07/03 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
浅析vue中的MVVM实现原理
2019/03/04 Javascript
Vue代码整洁之去重方法整理
2019/08/06 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
2020/04/26 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
[54:17]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第二场 1月10日
2021/03/11 DOTA
python定时关机小脚本
2018/06/20 Python
Python Django2.0集成Celery4.1教程
2019/11/19 Python
什么是python的id函数
2020/06/11 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
利用CSS3的transition属性实现滑动效果
2015/08/05 HTML / CSS
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
BookOutlet加拿大:在网上书店购买廉价折扣图书和小说
2018/10/05 全球购物
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
旅游管理毕业生自荐信
2013/11/05 职场文书
三八妇女节慰问信
2015/02/14 职场文书
结婚主持人致辞
2015/07/28 职场文书
2016年社区党支部公开承诺书
2016/03/25 职场文书
领导激励员工的演讲稿,各种会上用得到,建议收藏
2019/08/13 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
Ajax异步刷新功能及简单案例
2021/11/20 Javascript
JavaScript架构搭建前端监控如何采集异常数据
2022/06/25 Javascript