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在Windows和在Linux下调用动态链接库的教程
Aug 18 Python
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 Python
pandas获取groupby分组里最大值所在的行方法
Apr 20 Python
python脚本生成caffe train_list.txt的方法
Apr 27 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
May 29 Python
python读取txt文件并取其某一列数据的示例
Feb 19 Python
python 图片二值化处理(处理后为纯黑白的图片)
Nov 01 Python
Pytorch evaluation每次运行结果不同的解决
Jan 02 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
Python逐行读取文件内容的方法总结
Feb 14 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
Dec 14 Python
使用Python脚本对GiteePages进行一键部署的使用说明
May 27 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
VOLVO车载收音机
2021/03/02 无线电
解析php中memcache的应用
2013/06/18 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
搭建自己的PHP MVC框架详解
2017/08/16 PHP
Zero Clipboard js+swf实现的复制功能使用方法
2010/03/07 Javascript
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
使用jsonp实现跨域获取数据实例讲解
2016/12/25 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
js实现有趣的倒计时效果
2021/01/19 Javascript
Python实现的多线程端口扫描工具分享
2015/01/21 Python
Python文件操作基本流程代码实例
2017/12/11 Python
python爬虫 2019中国好声音评论爬取过程解析
2019/08/26 Python
python多线程扫描端口(线程池)
2019/09/04 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
使用Rasterio读取栅格数据的实例讲解
2019/11/26 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
Python字典添加,删除,查询等相关操作方法详解
2020/02/07 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
学习Python需要哪些工具
2020/09/04 Python
英国儿童设计师服装的领先零售商:Base
2019/03/17 全球购物
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
求职推荐信范文
2013/12/01 职场文书
主管会计岗位职责
2014/03/13 职场文书
优秀学生评语大全
2014/04/25 职场文书
大学学风建设方案
2014/05/04 职场文书
机电系毕业生求职信
2014/07/11 职场文书
公司授权委托书范文
2014/09/21 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python