一、第三方模块的下载与使用
第三方模块:别人写的模块,一般情况下功能都特别强大
我们如果想使用第三方模块,第一次必须先下载,后面才可以反复使用(等同于内置模块)
下载第三方模块的方式
1. pip工具 注意每个解释器都有pip工具,如果我们的电脑上有多个版本的解释器,那么我们在使用pip的时候一定要注意到底用的是哪一个,否则极其容易出现使用的是A版本解释器,然后用B版本的pip下载模块。
为了避免pip冲突,我们在使用的时候可以添加对应的版本号
python27
pip2.7
python36
pip3.6
python38
pip3.8
pip install 模块名
pip install 模块名 -i 仓库地址
pip install 模块名==版本号 -i 仓库地址
2. pycharm提供快捷方式
注意:下载第三方模块可能会出现的问题
1. 报错并有警告信息
WARNING: You are using pip version 20.2.1;
原因在于pip版本过低,只需要拷贝后面的命令执行更新操作即可
d:\python38\python.exe -m pip install --upgrade pip
更新完成后再次执行下载第三方模块的命令即可
2.报错并含有Timeout关键字
说明当前计算机网络不稳定,只需要换网或者重新执行几次即可
3. 报错并没有关键字
面向百度搜索
pip下载XXX报错:拷贝错误信息
通常都是需要用户提前准备好一些环境才可以顺利下载
4.下载速度很慢
pip默认下载的仓库地址是国外的 python.org
我们可以切换下载的地址
pip install 模块名 -i 仓库地址
pip的仓库地址有很多 百度查询即可
清华大学 :https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科学技术大学 :http://pypi.mirrors.ustc.edu.cn/simple/
华中科技大学:http://pypi.hustunique.com/
豆瓣源:http://pypi.douban.com/simple/
腾讯源:http://mirrors.cloud.tencent.com/pypi/simple
华为镜像源:https://repo.huaweicloud.com/repository/pypi/simple/
requests模块能够模拟浏览器发送网络请求
导入模块: import requests
1. 朝指定网址发送请求获取页面数据(等价于:浏览器地址栏输入网址回车访问)
res = requests.get('http://www.redbull.com.cn/about/branch')
print(res.content) # 获取bytes类型的网页数据(二进制)
res.encoding = 'utf8' # 指定编码
print(res.text) # 获取字符串类型的网页数据(默认按照utf8)
2. 网络爬虫实战之爬取链家二手房数据
import re
import requests
res = requests.get('https://sh.lianjia.com/ershoufang/pudong/tt9/')
data = res.text
home_name_list = re.findall('(.*?) ',data)
home_street_list = re.findall('
home_data = zip(home_name_list,home_street_list,home_info_list,home_attention_list,home_unite_price)
with open(r'home_data.txt', 'w',encoding='utf8') as f:
for data in home\_data:
print("""
1.房屋名称 : %s
2.房屋街道 : %s
3.房屋详情 : %s
4.房屋关注度 : %s
5.房屋价格 : %s
""" % data)
f.write("""
1.房屋名称 : %s
2.房屋街道 : %s
3.房屋详情 : %s
4.房屋关注度 : %s
5.房屋价格 : %s
""" % data)
三、自动化办公领域之openpyxl模块
03版本之前 .xls
03版本之后 .xlsx
xlwt:往表格中写入数据、xlrd:从表格中读取数据:兼容所有版本的excel文件
openpyxl:最近几年比较火热的操作excel表格的模块
03版本之前的兼容性较差
pandas:涵盖了上述的模块
1. 创建文件与修改文件名称
from openpyxl import Workbook
wb = Workbook() # 创建了一个excle表格
wb.save(r'客户信息表.xlsx') # 保存之后表格才会出现
from openpyxl import Workbook
wb = Workbook()
wb1 = wb.create_sheet('客户名单1')
wb2 = wb.create_sheet('客户名单2')
wb3 = wb.create_sheet('客户名单3')
wb.save(r'客户信息表.xlsx')
还可以修改默认的工作簿位置
from openpyxl import Workbook
wb = Workbook()
wb1 = wb.create_sheet('客户名单1')
wb2 = wb.create_sheet('客户名单2')
wb3 = wb.create_sheet('客户名单3')
wb4 = wb.create_sheet('VIP客户', 0) # 参数0表示的是工作薄位置
wb.save(r'客户信息表.xlsx')
二次修改工作薄名称
from openpyxl import Workbook
wb = Workbook()
wb1 = wb.create_sheet('客户名单1')
wb2 = wb.create_sheet('客户名单2')
wb3 = wb.create_sheet('客户名单3')
wb4 = wb.create_sheet('VIP客户', 0)
wb4.title = '长期客户' # 将‘VIP客户’修改为‘长期客户’
wb.save(r'客户信息表.xlsx')
填写数据的方式1:Worksheet[ ]
from openpyxl import Workbook
wb = Workbook() # 创建了一个excle表格
wb1 = wb.create_sheet('客户名单1')
wb1['A1'] = 666 # ['A1'] 代表的是该表中的 A1 位置,我们可以将数据直接赋值给它
wb.save(r'客户信息表.xlsx')
填写数据的方式2:Worksheet.cell()
from openpyxl import Workbook
wb = Workbook() # 创建了一个excle表格
wb1 = wb.create_sheet('客户名单1')
wb1.cell(row=3, column=1, value='Alex') # 在第3行第1列写入数据
wb.save(r'客户信息表.xlsx')
填写数据的方式3:Worksheet.append() 可以同时写入多个数据
from openpyxl import Workbook
wb = Workbook() # 创建了一个excle表格
wb1 = wb.create_sheet('客户名单1')
wb1.append(['编号', '姓名', '年龄', '爱好']) # 表头字段
wb1.append([1, 'jason', 18, 'read'])
wb1.append([2, 'kevin', 28, 'music'])
wb1.append([3, 'tony', 58, 'play'])
wb1.append([4, 'oscar', 38, 'ball'])
wb.save(r'客户信息表.xlsx')
wb1['A1'] = 12
wb1['A2'] = 15
wb1['A3'] = 23
wb1['A4'] = 35
wb1['A5'] = '= sum(A1:A4)' # 85
openpyx实战:
将前面爬取的房屋信息写入Excley文件:
import requests
res = requests.get('https://sh.lianjia.com/ershoufang/pudong/tt9/')
data = res.text
home_name_list = re.findall('(.*?) ',data)
home_street_list = re.findall('
',data)home_info_list = re.findall('
home_attention_list = re.findall('
home_unite_price = re.findall('
home_data = zip(home_name_list,home_street_list,home_info_list,home_attention_list,home_unite_price)
from openpyxl import Workbook
wb = Workbook()
wb1 = wb.create_sheet('房屋信息', 0)
wb1.append(['房屋名称','房屋街道','房屋详情','房屋关注度','房屋价格'])
for data in home_data:
wb1.append(data)
wb.save(r'home_info.xlsx')
openpyxl主要用于数据的写入,至于后续的表单操作它并不是很擅长,如果想做需要更高级的模块pandas
from openpyxl import load_workbook
wb = load_workbook(r'客户信息表.xlsx')
print(wb.sheetnames) # ['Sheet', '客户名单1']
wb1 = wb['客户名单1']
print(wb1.max_row) # 获取最大数据行数 5
print(wb1.max_column) # 获取最大数据列数 1
print(wb1['A1'].value) # 读取单元格内容 12
print(wb1['A5'].value) # 如果是公式 读取的公式 # = sum(A1:A4)
按行和列读取数据:
for i in wb1.rows:
print([d.value for d in i])
for j in wb1.columns:
print([d.value for d in j])
手机扫一扫
移动阅读更方便
你可能感兴趣的文章