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之通过Python连接数据库
Oct 28 Python
python中安装模块包版本冲突问题的解决
May 02 Python
Python登录并获取CSDN博客所有文章列表代码实例
Dec 28 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
Jun 01 Python
python+mysql实现教务管理系统
Feb 20 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
Nov 15 Python
python求一个字符串的所有排列的实现方法
Feb 04 Python
浅谈keras保存模型中的save()和save_weights()区别
May 21 Python
python 负数取模运算实例
Jun 03 Python
详解使用scrapy进行模拟登陆三种方式
Feb 21 Python
python周期任务调度工具Schedule使用详解
Nov 23 Python
在 Python 中利用 Pool 进行多线程
Apr 24 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 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
PHP关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
php实现图片上传并利用ImageMagick生成缩略图
2016/03/14 PHP
如何在PHP中使用AES加密算法加密数据
2020/06/24 PHP
javascript工具库代码
2012/03/29 Javascript
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
JQuery删除DOM节点的方法
2015/06/11 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
JavaScript优化专题之Loading and Execution加载和运行
2016/01/20 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
前端js弹出框组件使用方法
2020/08/24 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
基于vue展开收起动画的示例代码
2018/07/05 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
使用express获取微信小程序二维码小记
2019/05/21 Javascript
node事件循环和process模块实例分析
2020/02/14 Javascript
js最全的数组的降维5种办法(小结)
2020/04/28 Javascript
详解Typescript 内置的模块导入兼容方式
2020/05/31 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
利用Python中的mock库对Python代码进行模拟测试
2015/04/16 Python
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
pandas DataFrame 交集并集补集的实现
2019/06/24 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
毕业生精彩的自我评价分享
2013/10/06 职场文书
高三自我鉴定
2013/10/23 职场文书
中学教师管理制度
2014/01/14 职场文书
求职信内容怎么写
2014/05/26 职场文书
英语感谢信范文
2015/01/20 职场文书