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 qrcodepil


(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

相关推荐
是小李呀几秒前
Java集合扩容机制解析:ArrayList与HashMap底层原理及性能差异
java
SimonKing几秒前
FreeLLMAPI:24 家厂商、128 个模型、1 个 Key智能切换所有可用的模型
java·后端·程序员
阿pin几秒前
Java随笔-JVM内存模型
java·开发语言·jvm·内存模型
曲幽2 分钟前
从卡顿到丝滑:FastAPI 调用外部 API 的正确姿势(httpx 实战)
python·fastapi·web·async·httpx·client·await·requests·aiohttp
Cobyte4 分钟前
17.响应式系统比对:链表如何实现响应式系统的高效更新
前端·javascript·vue.js
2601_963771378 分钟前
Speeding Up Creative Agency Portfolios: A Performance Guide
前端·数据库·php
禅思院8 分钟前
AI对话前端从入门到崩溃:一个长对话引发的五层优化战争【二】
前端·前端框架·ai编程
AI 大模型学习不踩坑19 分钟前
Harness 架构原理与工程实践详解
java·人工智能·神经网络·机器学习·计算机视觉·架构
不瘦80斤不改名20 分钟前
HalfCart:基于LBS的1\.5km本地拼单系统全栈实践与踩坑复盘
python·docker·typescript·pycharm
IT_陈寒42 分钟前
React useEffect里面写异步,我的状态怎么老丢?
前端·人工智能·后端