Python使用库(二)
第三方库
认识第三方库
第三方库就是别人已经实现好了的库, 我们可以拿过来直接使用.
虽然标准库已经很强大了, 但是终究是有限的. 而第三方库可以视为是集合了全世界 Python 程序猿的智慧, 可以说是几乎无穷无尽.
问题来了, 当我们遇到一个需求场景的时候, 如何知道, 该使用哪个第三方库呢?
就需要用到下面几个网站了:
当我们确定了该使用哪个第三方库之后, 就可以使用 pip 来安装第三方库了.
使用 pip
pip 是 Python 内置的 包管理器.
所谓 包管理器 就类似于我们平时使用的手机 app 应用商店一样.
第三方库有很多, 是不同的人, 不同的组织实现的. 为了方便大家整理, Python 官方提供了一个网站PyPI https://pypi.org/, 来收集第三方库.
其他大佬写好的第三方库也会申请上传到 PyPI 上.
这个时候就可以方便的使用 pip 工具来下载 PyPI 上的库了.
pip 在我们安装 Python 的时候就已经内置了. 无需额外安装.
pip 是一个可执行程序, 就在 Python 的安装目录中.
打开 cmd, 直接输入 pip. 如果显示以下帮助信息, 说明 pip已经准备就绪
如果最开始按照要求在安装 Python 的时候勾选了:
Add Python 3.10 to PATH
那么 pip 就是默认可用的.
如果提示
'pip' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
则说明没有正确的把 pip 加入到 PATH 中, 可以手动把 pip 所在的路径加入到 PATH 环境变量中. (参考 https://www.jianshu.com/p/1de0acf7185d)
或者卸载重装 Python, 记得勾上上述选项, 也许是更简单的办法.
使用以下命令, 即可安装第三方库
pip install [库名]
注意: 这个命令需要从网络上下载, 使用时要保证网络畅通.
安装成功后, 即可使用 import 导入相关模块, 即可进行使用.
注意: 如果使用 pip 安装完第三方库之后, 在 PyCharm 中仍然提示找不到对应的模块, 则检查 Settings ->Project -> Python Interpreter , 看当前 Python 解释器设置的是否正确. (如果一个机器上安装了多个版本的 Python, 容易出现这种情况).
代码示例: 生成二维码
(1) 通过搜索引擎, 确定使用哪个库
得到情报, qrcode 这个库, 可以用来生成二维码
(2) 查看 qrcode 文档
在 PyPI 上搜索 qrcode
点击则进入 qrcode 的详情页.
文档开头描述了如何安装 qrcode
页面中央位置描述了 qrcode 库的使用方法
(3) 使用 pip 安装
pip install qrcode[pil]
注意: pip 安装的时候可能会有警告, 提示使用的 pip 版本太低. 这个警告我们不必处理, 不影响我们正常使用.
(4) 编写代码
按照文档给出的示例, 模仿一段代码
import qrcode
img = qrcode.make('汤老湿真帅')
img.save('qrcode.png')
运行完毕后, 得到结果如下:
使用微信或者其他工具扫码, 即可看到二维码内容.
所谓二维码, 本质上就是使用黑白点阵表示一个字符串.
我们日常使用的二维码内部一般是一个 URL, 扫码后会自动跳转到对应的地址, 从而打开一个网页.
代码示例: 操作 excel
读取 excel 可以使用 xlrd 模块. 文档地址: https://xlrd.readthedocs.io/en/latest/
修改 excel 可以使用 xlwt 模块. 文档地址: https://xlwt.readthedocs.io/en/latest/
此处以 xlrd 为例, 演示 excel 的基本操作.
需求 有如下 excel 表格 d:/test.xlsx
求 100 班的同学的平均分.
虽然 excel 自身支持很强大的功能, 也可以求和, 求平均值. 但是如果是稍微复杂的需求, 操作起来可能就没那么方便了
安装 xlrd
pip install xlrd==1.2.0
注意: 此处要指定版本号安装. 如果不指定版本号, 则安装最新版. 最新版里删除了对 xlsx 格式文件的支持
编写代码
- 使用 open_workbook 方法打开一个 excel 文件.
- 使用 xlsx.sheet_by_index(0) 获取到 0 号标签页.
- 使用 table.nrows 获取到表格的行数.
- 使用 table.cell_value(row, col) 获取到表格中 row, col 位置的元素值.
import xlrd
# 1. 打开 xlsx 文件
xlsx = xlrd.open_workbook('d:/test.xlsx')
# 2. 获取 0 号标签页. (当前只有一个标签页)
table = xlsx.sheet_by_index(0)
# 3. 获取总行数
nrows = table.nrows
# 4. 遍历数据
count = 0
total = 0
for i in range(1, nrows):
# 使用 cell_value(row, col) 获取到指定坐标单元格的值.
classId = table.cell_value(i, 1)
if classId == 101:
total += table.cell_value(i, 2)
count += 1
print(f'平均分: {total / count}')
代码示例: “程序猿鼓励师”
监听键盘按键, 每按键 20 下, 就自动播放一个音频, 鼓励一下辛苦搬砖的自己。
安装第三方依赖
- pynput 用于监听键盘按键. 注意版本不要用最新.
- playsound 用于播放音频.
pip install pynput==1.6.8
pip install playsound==1.2.2
准备音频文件
此处准备了一个 ding.mp3 放到和 py 代码同级目录中.
编写代码
- 使用 from import 的格式直接导入模块中的指定对象/函数.
- 使用 keyboard.Listener 监听键盘按键. 其中 on_release 会在释放按键时被调用.
- 使用 listener.start 启动监听器. 为了防止程序直接退出, 使用 listener.join 让程序等待用户按键.
- 使用 count 计数, 每隔 10 次, 调用playsound播放音频文件。
from pynput import keyboard
from playsound import playsound
count = 0
def on_release(key):
print(key)
global count
count += 1
if count % 10 == 0:
playsound('ding.mp3')
listener = keyboard.Listener(
on_release=on_release)
listener.start()
listener.join()
运行程序, 即可感受到效果