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 13 Python
python实现简单遗传算法
Mar 19 Python
python2 与 python3 实现共存的方法
Jul 12 Python
Python WSGI的深入理解
Aug 01 Python
Python使用random.shuffle()打乱列表顺序的方法
Nov 08 Python
Python 互换字典的键值对实例
Feb 12 Python
Python实现大数据收集至excel的思路详解
Jan 03 Python
tensorflow多维张量计算实例
Feb 11 Python
关于Python字符串显示u...的解决方式
Mar 06 Python
Python内建序列通用操作6种实现方法
Mar 26 Python
python map比for循环快在哪
Sep 21 Python
python微信智能AI机器人实现多种支付方式
Apr 12 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+FFMPEG实现将视频自动转码成H264标准Mp4文件
2014/09/24 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
老生常谈PHP中的数据结构:DS扩展
2017/07/17 PHP
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
2013/07/17 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
jquery操作ID带有变量的节点实例
2016/12/07 Javascript
详解Vue用axios发送post请求自动set cookie
2017/05/10 Javascript
js 倒计时(高效率服务器时间同步)
2017/09/12 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
详解适配器在JavaScript中的体现
2018/09/28 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
2018/11/28 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
Python中的下划线详解
2015/06/24 Python
详解字典树Trie结构及其Python代码实现
2016/06/03 Python
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
基于Python+Appium实现京东双十一自动领金币功能
2019/10/31 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
2020/07/03 Python
Python如何给你的程序做性能测试
2020/07/29 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
Bluebella法国官网:英国性感内衣品牌
2019/05/03 全球购物
Fenty Beauty官网:蕾哈娜创立的美妆品牌
2021/01/07 全球购物
文化产业实施方案
2014/06/07 职场文书
爱国口号
2014/06/19 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
孝女彩金观后感
2015/06/10 职场文书
婚礼领导致辞大全
2015/07/28 职场文书
银行安全保卫工作总结
2015/08/10 职场文书
终止合同协议书范本
2016/03/22 职场文书
go设置多个GOPATH的方式
2021/05/05 Golang