Python使用库(二)

news2024/9/25 13:23:56

Python使用库(二)

第三方库

认识第三方库

第三方库就是别人已经实现好了的库, 我们可以拿过来直接使用.
虽然标准库已经很强大了, 但是终究是有限的. 而第三方库可以视为是集合了全世界 Python 程序猿的智慧, 可以说是几乎无穷无尽.
问题来了, 当我们遇到一个需求场景的时候, 如何知道, 该使用哪个第三方库呢?
就需要用到下面几个网站了:

image-20221231110534896

当我们确定了该使用哪个第三方库之后, 就可以使用 pip 来安装第三方库了.

使用 pip

pip 是 Python 内置的 包管理器.

所谓 包管理器 就类似于我们平时使用的手机 app 应用商店一样.
第三方库有很多, 是不同的人, 不同的组织实现的. 为了方便大家整理, Python 官方提供了一个网站PyPI https://pypi.org/, 来收集第三方库.
其他大佬写好的第三方库也会申请上传到 PyPI 上.
这个时候就可以方便的使用 pip 工具来下载 PyPI 上的库了.

pip 在我们安装 Python 的时候就已经内置了. 无需额外安装.
pip 是一个可执行程序, 就在 Python 的安装目录中.

打开 cmd, 直接输入 pip. 如果显示以下帮助信息, 说明 pip已经准备就绪

image-20221231110850966

如果最开始按照要求在安装 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) 通过搜索引擎, 确定使用哪个库

image-20221231111245728

得到情报, qrcode 这个库, 可以用来生成二维码

(2) 查看 qrcode 文档

在 PyPI 上搜索 qrcode

image-20221231111438607

点击则进入 qrcode 的详情页.
文档开头描述了如何安装 qrcode

image-20221231111503811

页面中央位置描述了 qrcode 库的使用方法

image-20221231111527426

(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()

运行程序, 即可感受到效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/131499.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux驱动入门-最简单字符设备驱动(基于pc ubuntu)

一.字符设备驱动概念 字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、 IIC、 SPI,LCD 等等都是字符设备&#xff0…

公共管理老师赴英国G5名校-伦敦大学学院CSC公派访学

CSC青年骨干教师项目的实施院校一般都要求申请人提前上报邀请函等申请材料,以进行校内遴选。为提升竞争优势,A老师希望能获得英国名校的邀请函。最终我们为其申请到英国G5名校之一的伦敦大学学院,凭借该邀请函,A老师顺利通过了本校…

【2022年终总结】勇敢追梦,去和人生博弈

目录序言刚开始的1月松懈的2月忙碌的3月迷茫的4月开源项目的5月入职汇报的6月7月8月9月假期过后的10月至关重要的11月最后冲刺的12月2022年的总结2023年的目标往年回顾序言 在刚刚过完的平安夜和圣诞节之际,同时意味着2022年要画上一个句号。这一周算是比较煎熬的几…

高效的事件处理模式——Reactor、Proactor

IO模型 从理论上说,阻塞IO、IO复用和信号驱动IO都是同步IO模型。因为在这三种IO模型中,IO的读写操作,都是在IO事件发生之后,由应用程序来完成的。而POSIX规范所定义的异步IO模型则不同。对异步IO而言,用户可以直接对I…

ubuntu18.04安装docker和nvidia-docker2

ubuntu18.04安装docker和nvidia-docker 1、卸载旧版本的docker 旧版本的 Docker 被称为 docker、docker.io 或 docker-engine。 如果安装了这些,需要卸载它们: sudo apt-get remove docker docker-engine docker.io containerd runc2、 使用存储库安装…

聊一聊 SQLSERVER 的行不能跨页

一:背景 1. 讲故事 相信有很多朋友在学习 SQLSERVER 的时候都听说过这句话,但大多都是记忆为主,最近在研究 SQLSERVER,所以我们从 底层存储 的角度来深入理解下。 二:理解数据页 1. 数据页的组织 在前面的文章中我…

Vue2学习笔记(二):MVVM模型、数据代理

一、MVVM M(Model): 对应data中的数据 V(View): 也就是模板(template) VM(ViewModel): 对应Vue实例对象 大多数的前端框架都或多或少借鉴了MVVM模型,其中VM可以看做是View与Model中间的桥梁,它协助页面(View)和数据(Model)的展示。 二、数据代理 1.了…

JUC(十一)-线程池-ScheduledThreadPoolExecutor分析

ScheduledThreadPoolExecutor 分析 文章目录ScheduledThreadPoolExecutor 分析一、ScheduledThreadPoolExecutor介绍二、ScheduledThreadPoolExecutor应用2.1 ScheduledThreadPoolExecutor 构造器2.2 ScheduledThreadPoolExecutor 应用代码三、ScheduledThreadPoolExecutor源码…

10多个LearnDash示例和演示:从这些在线教育网站获得灵感!

正在寻找真实的LearnDash示例来激发您自己的电子学习网站的灵感? LearnDash 是最受欢迎的 WordPress LMS 插件之一,约翰霍普金斯大学和 Collibra 等大型组织以及 Yoast 和 ProBlogger 等小型品牌都在使用它。 LearnDash在线教育网站定制 LearnDash是最…

基于FireBeetle 2 ESP32-E开发板的LVGL移植及传感器显示(Arduino+TFT_eSPI+LVGL)

目录项目介绍硬件介绍硬件结构说明LVGL移植综合实现功能展示项目总结👉 【Funpack2-3】基于FireBeetle 2 ESP32-E开发板的LVGL移植及传感器显示 👉 CSDN-工程源文件 👉 Github-KafCoppelia/FireBeetle2_lvgl_sensors 项目介绍 本项目基于Fir…

蓝桥杯寒假集训第三天《灌溉》

没有白走的路,每一步都算数🎈🎈🎈 题目描述: 一个长方形块,在方形块的中间位置有给定的水管,这些水管在单位时间会往上下左右四个方向进行灌溉。问在给定的方块中,一定时间后&#…

PyCharm 发布了新版,支持最新 Python 3.11 和 PyScript 框架

通常而言,使用新潮的或者快速发展的技术,可能会挺有挑战性,你可能得经常阅读文档,才能熟悉新的语法、API 和协议。 PyCharm 2022.2 通过提供对 Python 3.11 的语言特性和新的 PyScript 框架的支持,能够帮助你完成这一…

代码随想录算法训练营day59|503.下一个更大元素II,42. 接雨水

503.下一个更大元素II 503. 下一个更大元素 II - 力扣(LeetCode) 思路:单调栈 1. 单调递增栈;在遍历的过程中模拟走两边nums; class Solution {public int[] nextGreaterElements(int[] nums) {if(numsnull || num…

【MySQL】八,角色管理

创建角色 引入角色的目的是方便管理拥有相同权限的用户。恰当的权限设定,可以确保数据的安全性。 语法 CREATE ROLE role_name[host_name] [,role_name[host_name]]...创建一个经理的角色 create role managerlocalhost;给角色赋予权限 创建角色之后&#xff0…

使用 npm link 测试本地编写的 node 模块 / 引入全局安装的 node 模块

目录 1. npm install VS npm install -g 2. npm install -g 的本质?映射脚本的作用? 3. 如何测试使用未发布的 npm 包?npm link 原理? 4. link 到项目 4.1 全局 link 4.2 解除 link 4.3 link 到项目有两种情况(…

ansible 第二天

要求: 安装并且配置ansible 1)安装和配置ansible以及ansible控制节点server.example.com如下: 2)创建一个名为/home/student/ansible/inventory的静态库存文件如下所示: 2.1)node1 是dev主机组的成员 2.2)node2是test主机组的成员 2.3)node1和…

什么是 Loader、手写 Webpack Loader

目录 1. 什么是 Loader 1.1 Loader 工作原理 1.2 Loader 执行顺序 1.3 内联 Loader 前缀​​​​​​​ 2. 如何开发 Loader 2.1 Loader 长什么样子 2.2 配置本地 Loader 的四种方法 2.2.1 在配置 rules 时,指定 Loader 的绝对路径 2.2.2 在 resolveLoader…

Windows配置万德(Wind)量化接口

原理:wind会在python的第三方库中安装一个属于wind的库 文章目录步骤1:确定python的路径步骤2:配置wind的接口步骤3:检查配置步骤4:使用python提取任意的wind数据步骤1:确定python的路径 如果是默认安装,一般路径是:C:\Users\用户名\Anacond…

磨金石教育摄影技能干货分享|优秀作品欣赏—技巧十足的艺术摄影

想要赏析艺术类的摄影,就得立足于画面身后的意蕴,想作者所想,思作者所思。 这有一定的难度,但也不乏趣味。 今天我们就再来看一组艺术类摄影作品,看看作者如何用高明的技巧表达自己心中的感受吧。 1、江苏省-李玉龙-《…

表白墙 -- 前后端代码详解

表白墙 -- 前后端代码详解一、前端二、后端实现2.1 需求2.2 创建项目及初始化2.3 实现提交数据 (存档)2.3.1 实现 doPost2.3.2 构造请求 (修改 html 文件)2.3.3 验证2.4 实现获取数据 (读档)2.4.1 实现 doGet2.4.2 构造请求 (修改 html 文件)2.4.3 验证三、JDBC 版本 (MySQL)3.…