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文本生成二维码实例
Jan 06 Python
Python之父谈Python的未来形式
Jul 01 Python
python解析基于xml格式的日志文件
Feb 25 Python
Python双精度浮点数运算并分行显示操作示例
Jul 21 Python
python3实现表白神器
Apr 09 Python
Python 中Django安装和使用教程详解
Jul 03 Python
Python编写带选项的命令行程序方法
Aug 13 Python
python 读写文件包含多种编码格式的解决方式
Dec 20 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
Jan 03 Python
Python selenium爬取微信公众号文章代码详解
Aug 12 Python
Python操作dict时避免出现KeyError的几种解决方法
Sep 20 Python
Pycharm在指定目录下生成文件和删除文件的实现
Dec 28 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
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
php 生成WML页面方法详解
2009/08/09 PHP
php 8小时时间差的解决方法小结
2009/12/22 PHP
Views rows style模板重写代码
2011/05/16 PHP
php实现多城市切换特效
2015/08/09 PHP
php正则表达式学习笔记
2015/11/13 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
程序员的表白神器“520”大声喊出来
2016/05/20 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
JavaScript字符串String和Array操作的有趣方法
2012/12/18 Javascript
Eval and new funciton not the same thing
2012/12/27 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
浅谈Sticky组件的改进实现
2016/03/22 Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
2017/07/18 Javascript
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
vue iview实现动态新增和删除
2020/06/17 Javascript
[02:03]《现实生活中的DOTA2》—林书豪&DOTA2职业选手出演短片
2015/08/18 DOTA
python获取目录下所有文件的方法
2015/06/01 Python
使用python3.5仿微软记事本notepad
2016/06/15 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
windows下python安装小白入门教程
2018/09/18 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
python实现全排列代码(回溯、深度优先搜索)
2020/02/26 Python
python中可以声明变量类型吗
2020/06/18 Python
在IE6系列等老式浏览器中使用HTML5的新标签实现方案
2012/12/25 HTML / CSS
新西兰杂志订阅:isubscribe
2019/08/26 全球购物
国庆促销活动总结
2014/08/29 职场文书
小班下学期个人总结
2015/02/12 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python
opencv 分类白天与夜景视频的方法
2021/06/05 Python
python分分钟绘制精美地图海报
2022/02/15 Python