4.1.如何读写csv数据

爬取豆瓣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)

结果

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

1.爬取豆瓣评分排行前250本书,保存为top250.csv

2.读取top250.csv文件,把评分为9.0以上的书籍保存到另外一个csv文件中

'''

import csv

#打开的时候必须用encoding='utf-8',否则报错

with open('top250_books.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)

4.2.如何读写excel

安装两个库pip install xlrd xlwt

读取excel#4.2.如何读取excel

import xlrd

book = xlrd.open_workbook('demo.xlsx')

sheet = book.sheet_by_index(0)

#获取有多少行多少列

print(sheet.nrows) #4

print(sheet.ncols) #4

print(sheet.cell(0,0)) #text:'姓名'

print(sheet.cell_value(0,0)) #姓名

print(sheet.row_values(0)) #['姓名', '语文', '数学', '外语']

print(sheet.row_values(1,1)) #[95.0, 99.0, 96.0]

求分数的总和#4.2.如何读写excel

import xlrd, xlwt

rbook = xlrd.open_workbook('demo.xlsx')

rsheet = rbook.sheet_by_index(0)

k = rsheet.ncols

#在最后添加一列 ‘总分’

rsheet.put_cell(0,k,xlrd.XL_CELL_TEXT, '总分', None)

for i in range(1,rsheet.nrows):

#求分数总和

t = sum(rsheet.row_values(i, 1))

rsheet.put_cell(i,k,xlrd.XL_CELL_NUMBER,t,None)

wbook = xlwt.Workbook()

wsheet = wbook.add_sheet(rsheet.name)

for i in range(rsheet.nrows):

for j in range(rsheet.ncols):

wsheet.write(i,j,rsheet.cell_value(i,j))

wbook.save('out.xlsx')

结果

python3实用编程技巧_9.python3实用编程技巧进阶(四)相关推荐

  1. 华为:编程实现联想输入法 输入联想功能是非常实用的一个功能,请编程实现类似功能

    /**************************************************************************** 输入联想 问题描述: 输入联想功能是非常实用 ...

  2. c语言联想输入法算法,华为:编程实现联想输入法 输入联想功能是非常实用的一个功能,请编程实现类似功能...

    /**************************************************************************** 输入联想 问题描述: 输入联想功能是非常实用 ...

  3. 10个实用的但偏执的Java编程技术-扣丁学堂

    10个实用的但偏执的Java编程技术 在沉浸于编码一段时间以后(比如说我已经投入近20年左右的时间在程序上了),你会渐渐对这些东西习以为常.因为,你知道的-- 任何事情有可能出错,没错,的确如此. 这 ...

  4. python编程软件下载-Python3.9下载

    Python3.9版是一款非常专业的电脑编程软件.相信有不少用户已经体验过之前的版本了,那么现在最新的版本3.9.0版本,已经在本年度向广大用户推出,更强大的功能,细节上的优化,适用于独立的.大型项目 ...

  5. 华章新春献礼:买基础编程图书,赠送实用月历

     华章新春献礼 买基础编程图书,赠送实用月历 还有免费培训等您参与! 活动请访问: 点击此处进入互动网活动 点击此处进入卓越网活动 ================================== ...

  6. 值得一看的G32加工端面螺纹编程方法,很实用!

    值得一看的G32加工端面螺纹编程方法,很实用! ① G32加工端面螺纹介绍: 概述:端面螺纹大多以矩形螺纹为主,车床的自定心卡盘(盘丝)使用的就是这种结构.这类螺纹没有具体的代号标注,一般是文字注释. ...

  7. Excel电子表格的使用技巧!很实用

    电子表格的使用技巧!很实用啊! Excel高级使用技巧 1.编辑技巧 (1) 分数的输入 如果直接输入"1/5",系统会将其变为"1月5日",解决办法是:先输入 ...

  8. Word画线条5大技巧,简单实用!

    [Word画线条5大技巧,简单实用!]1.输入三个"=",回车,就是一条双直线:2.输入三个"~",回车,就是一条波浪线:3.输入三个""回 ...

  9. APP技巧:微信10个实用小技巧,太实用了,赶紧收藏!

    大家天天都在用微信,但是真正完全玩转微信的人也许并不多,今天小编给大家分享10个实用的小技巧,非常实用,赶紧分享给自己的朋友们吧! 一.对方正在输入 这个提示仅在收到消息后的10秒钟内,在对话框输入文 ...

最新文章

  1. linux存储--dup和dup2函数解析(十八)
  2. 【NLP】BERT 模型与中文文本分类实践
  3. $nextTick 源码
  4. wps临时文件不自动删除_电脑:让 Windows 10 系统自动清理临时文件
  5. 组播协议——IGMP v2报文头介绍
  6. 乒乓球训练机_比教练更牛的全新乒乓球机器人,超拟人黑科技,引领未来体育浪潮...
  7. 【word论文排版教程3】制作样式和列表
  8. 数电(四)—使用译码器74138和门电路实现/写逻辑函数,使用8选1数据选择器74151实现实现L=∑m格式的3/多输入逻辑函数
  9. matlab怎么算方差和标准差,matlab用var函数算出的方差和标准差求解释~
  10. Arcgis使用教程(十)ARCGIS地图制图之统一修改地图符号样式的边框
  11. 测试用例设计方法详解
  12. 白嫖亚马逊AWS服务器
  13. DDOS专题详细讲解
  14. PDF怎么直接翻译成中文
  15. 多伦多大学朱子宁:一种选择语言探针的信息论观点
  16. mencoder的配置文件
  17. 计算机主机并联,如何一台主机多台电脑使用
  18. 你以为你真的了解二进制吗?详解JDK中的二进制骚操作
  19. 流量精灵刷流量的实例教程
  20. 在eclipse新的工作区间内导入项目遇到的报错问题并解决

热门文章

  1. JDBC、ODBC、OLE DB、ADO、ADOMD区别与联系
  2. 设计模式(3)策略模式
  3. Python 函数(可变参数)
  4. 3038 3n+1问题
  5. 机器学习之非监督学习与强化学习
  6. Android获取当前网络状态
  7. C语言及程序设计提高例程-21 首尝排序——冒个泡
  8. 计算机表格按性别排列,Excel表格性别数据-Excel 按性别(男女)排序
  9. linux 双线,linux 双线接入方案
  10. avs v7.0 php,AVS v7.0 – PHP在线视频上传分享程序