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 生成目录树及显示文件大小的代码
Jul 23 Python
python生成指定长度的随机数密码
Jan 23 Python
11个并不被常用但对开发非常有帮助的Python库
Mar 31 Python
python数据结构链表之单向链表(实例讲解)
Jul 25 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
Dec 18 Python
python将字符串list写入excel和txt的实例
Jul 20 Python
pyinstaller打包opencv和numpy程序运行错误解决
Aug 16 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
Jan 20 Python
python实现UDP协议下的文件传输
Mar 20 Python
Python try except异常捕获机制原理解析
Apr 18 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
Jun 30 Python
Python中bisect的用法及示例详解
Jul 20 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
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
2013/06/17 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
PHP中Session ID的实现原理实例分析
2019/08/17 PHP
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
Javascript 绘制 sin 曲线过程附图
2014/08/21 Javascript
什么是JavaScript中的结果值?
2016/10/08 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
Node.js 8 中的 util.promisify的详解
2017/06/12 Javascript
详解AngularJS1.x学习directive 中‘&amp; ’‘=’ ‘@’符号的区别使用
2017/08/23 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
vue translate peoject实现在线翻译功能【新手必看】
2018/06/07 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
Python使用CMD模块更优雅的运行脚本
2015/05/11 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
Python学习笔记之解析json的方法分析
2017/04/21 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
Python实现代码统计工具
2019/09/19 Python
Python爬虫实现模拟点击动态页面
2020/03/05 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
比利时家具购买网站:Home24
2019/01/03 全球购物
经济管理专业自荐信
2013/12/30 职场文书
药品业务员岗位职责
2014/04/17 职场文书
律政俏佳人观后感
2015/06/09 职场文书
西安事变观后感
2015/06/12 职场文书
欢送会主持词
2015/07/01 职场文书
朋友聚会祝酒词
2015/08/10 职场文书
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏
SQL Server中使用表变量和临时表
2022/05/20 SQL Server