python3实用编程技巧_9.python3实用编程技巧进阶(四)
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实用编程技巧进阶(四)相关推荐
- 华为:编程实现联想输入法 输入联想功能是非常实用的一个功能,请编程实现类似功能
/**************************************************************************** 输入联想 问题描述: 输入联想功能是非常实用 ...
- c语言联想输入法算法,华为:编程实现联想输入法 输入联想功能是非常实用的一个功能,请编程实现类似功能...
/**************************************************************************** 输入联想 问题描述: 输入联想功能是非常实用 ...
- 10个实用的但偏执的Java编程技术-扣丁学堂
10个实用的但偏执的Java编程技术 在沉浸于编码一段时间以后(比如说我已经投入近20年左右的时间在程序上了),你会渐渐对这些东西习以为常.因为,你知道的-- 任何事情有可能出错,没错,的确如此. 这 ...
- python编程软件下载-Python3.9下载
Python3.9版是一款非常专业的电脑编程软件.相信有不少用户已经体验过之前的版本了,那么现在最新的版本3.9.0版本,已经在本年度向广大用户推出,更强大的功能,细节上的优化,适用于独立的.大型项目 ...
- 华章新春献礼:买基础编程图书,赠送实用月历
华章新春献礼 买基础编程图书,赠送实用月历 还有免费培训等您参与! 活动请访问: 点击此处进入互动网活动 点击此处进入卓越网活动 ================================== ...
- 值得一看的G32加工端面螺纹编程方法,很实用!
值得一看的G32加工端面螺纹编程方法,很实用! ① G32加工端面螺纹介绍: 概述:端面螺纹大多以矩形螺纹为主,车床的自定心卡盘(盘丝)使用的就是这种结构.这类螺纹没有具体的代号标注,一般是文字注释. ...
- Excel电子表格的使用技巧!很实用
电子表格的使用技巧!很实用啊! Excel高级使用技巧 1.编辑技巧 (1) 分数的输入 如果直接输入"1/5",系统会将其变为"1月5日",解决办法是:先输入 ...
- Word画线条5大技巧,简单实用!
[Word画线条5大技巧,简单实用!]1.输入三个"=",回车,就是一条双直线:2.输入三个"~",回车,就是一条波浪线:3.输入三个""回 ...
- APP技巧:微信10个实用小技巧,太实用了,赶紧收藏!
大家天天都在用微信,但是真正完全玩转微信的人也许并不多,今天小编给大家分享10个实用的小技巧,非常实用,赶紧分享给自己的朋友们吧! 一.对方正在输入 这个提示仅在收到消息后的10秒钟内,在对话框输入文 ...
最新文章
- linux存储--dup和dup2函数解析(十八)
- 【NLP】BERT 模型与中文文本分类实践
- $nextTick 源码
- wps临时文件不自动删除_电脑:让 Windows 10 系统自动清理临时文件
- 组播协议——IGMP v2报文头介绍
- 乒乓球训练机_比教练更牛的全新乒乓球机器人,超拟人黑科技,引领未来体育浪潮...
- 【word论文排版教程3】制作样式和列表
- 数电(四)—使用译码器74138和门电路实现/写逻辑函数,使用8选1数据选择器74151实现实现L=∑m格式的3/多输入逻辑函数
- matlab怎么算方差和标准差,matlab用var函数算出的方差和标准差求解释~
- Arcgis使用教程(十)ARCGIS地图制图之统一修改地图符号样式的边框
- 测试用例设计方法详解
- 白嫖亚马逊AWS服务器
- DDOS专题详细讲解
- PDF怎么直接翻译成中文
- 多伦多大学朱子宁:一种选择语言探针的信息论观点
- mencoder的配置文件
- 计算机主机并联,如何一台主机多台电脑使用
- 你以为你真的了解二进制吗?详解JDK中的二进制骚操作
- 流量精灵刷流量的实例教程
- 在eclipse新的工作区间内导入项目遇到的报错问题并解决