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高效编程技巧
Jan 07 Python
Windows和Linux下使用Python访问SqlServer的方法介绍
Mar 10 Python
详尽讲述用Python的Django框架测试驱动开发的教程
Apr 22 Python
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
May 06 Python
Python抓取手机号归属地信息示例代码
Nov 28 Python
解决python "No module named pip" 的问题
Oct 13 Python
浅析python 中大括号中括号小括号的区分
Jul 29 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
Sep 29 Python
Tensorflow 实现释放内存
Feb 03 Python
Python 忽略文件名编码的方法
Aug 01 Python
在pycharm创建scrapy项目的实现步骤
Dec 01 Python
python 模拟登录B站的示例代码
Dec 15 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学习之PHP运算符
2006/10/09 PHP
php中static和const关键字用法分析
2016/12/07 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
javascript+xml实现简单图片轮换(只支持IE)
2012/12/23 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
jQuery控制iFrame(实例代码)
2013/11/19 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
2016/09/23 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
原生JS实现导航下拉菜单效果
2020/11/25 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
详解vue-cli中模拟数据的两种方法
2018/07/03 Javascript
微信小程序实现图片上传
2019/05/23 Javascript
Layui数据表格之单元格编辑方式
2019/10/26 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
[02:02]2018DOTA2亚洲邀请赛Mineski赛前采访
2018/04/04 DOTA
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
Python写的Socks5协议代理服务器
2014/08/06 Python
bat和python批量重命名文件的实现代码
2016/05/19 Python
Python中的sort()方法使用基础教程
2017/01/08 Python
EM算法的python实现的方法步骤
2018/01/02 Python
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
铭立家具面试题
2012/12/06 面试题
幼儿园消防安全制度
2014/01/26 职场文书
标准化管理实施方案
2014/02/25 职场文书
《毛主席在花山》教学反思
2014/04/20 职场文书
安全责任书范文
2014/08/25 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
关于倡议书的范文
2015/04/29 职场文书
白银帝国观后感
2015/06/17 职场文书
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers