python读写csv文件的方法


Posted in Python onAugust 13, 2019

1.爬取豆瓣top250书籍

import requests
import json
import csv
from bs4 import BeautifulSoup
books = []
def book_name(url):
 res = requests.get(url)
 html = res.text
 soup = BeautifulSoup(html, 'html.parser')
 items = soup.find(class_="grid-16-8 clearfix").find(class_="indent").find_all('table')
 for i in items:
  book = []
  title = i.find(class_="pl2").find('a')
  book.append('《' + title.text.replace(' ', '').replace('\n', '') + '》')
  star = i.find(class_="star clearfix").find(class_="rating_nums")
  book.append(star.text + '分')
  try:
   brief = i.find(class_="quote").find(class_="inq")
  except AttributeError:
   book.append('”暂无简介“')
  else:
   book.append(brief.text)
  link = i.find(class_="pl2").find('a')['href']
  book.append(link)
  global books
  books.append(book)
  print(book)
 try:
  next = soup.find(class_="paginator").find(class_="next").find('a')['href']
 # 翻到最后一页
 except TypeError:
  return 0
 else:
  return next
next = 'https://book.douban.com/top250?start=0&filter='
count = 0
while next != 0:
 count += 1
 next = book_name(next)
 print('-----------以上是第' + str(count) + '页的内容-----------')
csv_file = open('D:/top250_books.csv', 'w', newline='', encoding='utf-8')
w = csv.writer(csv_file)
w.writerow(['书名', '评分', '简介', '链接'])
for b in books:
 w.writerow(b)

结果

python读写csv文件的方法

2.把评分为9.0的书籍保存到book_out.csv文件中

'''
1.爬取豆瓣评分排行前250本书,保存为top250.csv
2.读取top250.csv文件,把评分为9.0以上的书籍保存到另外一个csv文件中
'''
import csv
#打开的时候必须用encoding='utf-8',否则报错
with open('top250.csv', encoding='utf-8') as rf:
 reader = csv.reader(rf)
 #读取头部
 headers = next(reader)
 with open('books_out.csv', 'w', encoding='utf-8') as wf:
  writer = csv.writer(wf)
  #把头部信息写进去
  writer.writerow(headers)
  for book in reader:
   #获取评分
   score = book[1]
   #把评分大于9.0的过滤出来
   if score and float(score) >= 9.0:
    writer.writerow(book)

总结

以上所述是小编给大家介绍的python读写csv文件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python数据结构之二叉树的建立实例
Apr 29 Python
使用Python脚本来控制Windows Azure的简单教程
Apr 16 Python
详解Python中用于计算指数的exp()方法
May 14 Python
python实现用于测试网站访问速率的方法
May 26 Python
Python中关键字nonlocal和global的声明与解析
Mar 12 Python
Python如何通过subprocess调用adb命令详解
Aug 27 Python
python计算列表内各元素的个数实例
Jun 29 Python
python将三维数组展开成二维数组的实现
Nov 30 Python
Python reversed函数及使用方法解析
Mar 17 Python
详解Python流程控制语句
Oct 28 Python
python基础学习之生成器与文件系统知识总结
May 25 Python
Python 实现定积分与二重定积分的操作
May 26 Python
python根据多个文件名批量查找文件
Aug 13 #Python
详解django实现自定义manage命令的扩展
Aug 13 #Python
Python一键安装全部依赖包的方法
Aug 12 #Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
Aug 12 #Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
Aug 12 #Python
基于Python2、Python3中reload()的不同用法介绍
Aug 12 #Python
Python递归函数 二分查找算法实现解析
Aug 12 #Python
You might like
php获得文件扩展名三法
2006/11/25 PHP
zend framework多模块多布局配置
2011/02/26 PHP
php 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
纯php生成随机密码
2015/10/30 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
javascript setTimeout()传递函数参数(包括传递对象参数)
2010/04/07 Javascript
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
2012/05/14 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
jquery的each方法使用示例分享
2014/03/25 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
浅谈高大上的微信小程序中渲染html内容—技术分享
2018/10/25 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
layer实现弹出层自动调节位置
2019/09/05 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
[00:29]2019完美世界全国高校联赛(秋季赛)总决赛海口落幕
2019/12/10 DOTA
python连接池实现示例程序
2013/11/26 Python
Python随机生成带特殊字符的密码
2016/03/02 Python
TensorFlow深度学习之卷积神经网络CNN
2018/03/09 Python
对python遍历文件夹中的所有jpg文件的实例详解
2018/12/08 Python
python内存动态分配过程详解
2019/07/15 Python
简单了解django索引的相关知识
2019/07/17 Python
python实现图片九宫格分割
2021/03/07 Python
python flask搭建web应用教程
2019/11/19 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
2014年学校食堂工作总结
2014/11/25 职场文书
初中毕业生自我评价
2015/03/02 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python