Python 5:使用库

预先写好可复用代码 ,能帮助开发者提升 效率。 荀子"善假于物"的思想正体现了利用工具的重要性。

一门编程语言能否流行, 取决于语法是否简单, 取决于生态(即库的丰富程度)是否完备。

来源 ,库分为标准库(语言自带,可直接使用)和第三方库(需额外安装,任何人都可以开发并发布供他人使用)。

1.标准库--import

Python 自身内置了非常丰富的库

官方文档:https://docs.python.org/3.10/library/index.html

使用 import 导入模块 (单独的**.py** 文件)到当前文件 中,并执行其中的代码。


1.1 日期计算

datetime 这个模块里面恰好有个同名的 datetime 类

1.2 文件查找工具

在包含大量目录和文件的文件系统中,想找到某个特定文件需要递归查找 :从根目录开始,遇到子目录 就进入继续查找,直到遍历完所有层级。

os.walk 是 Python 内置的目录遍历工具,自动完成递归遍历 ,无需手写递归代码。只需一个简单的for 循环 ,就能遍历指定路径下的所有目录和文件。


用户输入 待搜索路径 和待搜索关键词 ,程序在该路径下递归查找文件名中包含关键词的文件,并打印其完整路径。

2.第三方库--pip

第三方库是别人写好、可直接拿来用的代码,扩展 了标准库之外的功能

可以通过百度、搜狗、Bing 等搜索引擎查找合适的库 ;确定用哪个库后,用 pip 命令安装

2.1 pip介绍

pip 就是Python 的"应用商店",能直接从PyPI 网站 下载并安装 你想要的库,由 Python 官方维护,像"应用商店的服务器 ",专门收集各种第三方库

https://pypi.org/https://pypi.org/

安装 Python 时会自动装上pip ,可以直接命令行使用,无需额外安装。

如果提示 :'pip' 不是内部或外部命令,也不是可运行的程序 或批处理文件;则需要 手动把 pip 所在的路径加入到 PATH 环境变量 中,或卸载重装Python,记得勾上上述选项。

https://www.jianshu.com/p/1de0acf7185d


2.2 pip使用

使用 pip install [库名] 命令, 即可安装第三方库。

这个命令需要从网络上下载, 使用时要保证网络畅通 ;安装成功后, 即可使用 import导入相关模块, 即可进行使用。


2.3 生成二维码

(1)通过搜索引擎, 确定使用哪个库


(2)PyPI 网站 上搜索 qrcode ,查看 qrcode 文档,获取pip命令。

https://pypi.org/【官方文档更准确】

文档开头描述了如何安装 qrcode

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

导入 qrcode 模块;调用 qrcode.make() 函数,把任意字符串 转换成一个二维码图片对象 img;查看 img 的生成类型

调用图像对象的 save 方法,将二维码保存为图片文件 some_file.png,也可以放在其他路径下。


**(3)**安装第三方库pip install qrcode[pil]


(4)编写代码

2.4 操作 excel

求 100 班的同学的平均分 D:/test.xlsx

读取 excel 可以使用xlrd 模块https://xlrd.readthedocs.io/en/latest/https://xlrd.readthedocs.io/en/latest/

修改 excel 可以使用 xlwt模块https://xlwt.readthedocs.io/en/latest/https://xlwt.readthedocs.io/en/latest/

此处以xlrd为例,演示 excel 的基本操作。


**(1)**安装第三方库 xlrd

pip install xlrd==1.2.0

此处要指定版本号 安装,如果不指定版本号,则安装最新版,但最新版里删除了对 xlsx 格式文件的支持。


(2)编写代码

2.5 操作音频文件

监听键盘按键 , 每按键20 下, 就自动播放一个音频

(1)安装第三方库

pynput 用于监听键盘按键 ,注意版本不要 用最新;playsound 用于播放音频

pip install pynput==1.6.8

pip install playsound==1.2.2


(2)准备音频文件:yuai.mp3

此处准备了雨爱的mp3 ,放到和 py 代码同级目录中。

也可以直接复制粘贴 到python中,放在文件夹里也可以,在代码中加上路径 'xx/yuai.mp3' 即可。


(3)编写代码


函数介绍


若想随机播放多个音频 ,创建列表,设置随机数即可。

python 复制代码
import random

from pynput import keyboard
from playsound import playsound

mp3List = ['mp3/baby.mp3', 'mp3/yuai.mp3',
           'mp3/LoveYourself.mp3']
count = 0 #记录用户按键盘次数
def onRelease(key):
    print(key)
    global count #引入全局变量
    count += 1
    #每按10次按键,播放音频
    if count % 10 == 0:
        #生成0-2的随机整数
        i = random.randint(0, len(mp3List)-1)
        playsound(mp3List[i])

# 创建好Listener后,用户在键盘按键的动作就被会捕获到
# 希望在捕获后执行一段代码,在前面定义函数
listener = keyboard.Listener(on_release=onRelease)
listener.start()
listener.join()

(4)改进代码

上述代码在执行过程中,会感觉到播放音频导致按键卡顿 ,可以使用多线程解决这个问题。

3.字符串例题

字符串 是 Python 的内置类型, 字符串的很多方法不需要导入额外的模块, 即可直接使用。

3.1 翻转单词顺序

https://leetcode.cn/problems/fan-zhuan-dan-ci-shun-xu-lcof/description/

3.2 旋转字符串

https://leetcode.cn/problems/rotate-string/description/

3.3 统计是给定字符串前缀的字符串数目

https://leetcode.cn/problems/count-prefixes-of-a-given-string/description/

4.学生管理系统

5.扩展

awesome-python 整理了 Python 的一些非常实用的程序库。

https://gitee.com/awesome-lib/awesome-python

500 Lines or Less 使用简短 的 Python 代码来实现一些有意思的程序。

https://github.com/aosabook/500lines

相关推荐
Bigger3 小时前
Bun 能上生产吗?我的实战结论
前端·node.js·bun
m0_596749093 小时前
如何防止SQL拼接漏洞_使用PDO对象实现安全的SQL交互
jvm·数据库·python
程序员小假3 小时前
HTTP3 性能更好,为什么内网微服务依然多用 HTTP2?HTTP2 内网优势是什么?
java·后端
Mr数据杨3 小时前
【Codex】用教案主体模块沉淀标准化教学设计内容
java·开发语言·django·codex·项目开发
苍煜3 小时前
RocketMQ系列第三篇:Java原生基础使用实操,手把手写生产者消费者Demo
java·rocketmq·java-rocketmq
Andya_net4 小时前
Java | Java内存模型JMM
java·开发语言
182******20834 小时前
2026年java后端还有机会吗?还能找到工作吗?
java·开发语言
kyriewen4 小时前
你的前端滤镜慢得像PPT?用Rust+WebAssembly,一秒处理4K图
前端·rust·webassembly
kyriewen114 小时前
你等的Babel编译,够喝三杯咖啡了——用Rust重写的SWC,只需眨个眼
开发语言·前端·javascript·后端·性能优化·rust·前端框架