python第三方库使用案例

一、使用pip

第三方库集合了全世界Python程序员的智慧,可以说是无穷无尽。在遇到一个需求场景,通过上网搜索等方式确定要使用哪个第三方库之后,可以使用pip来安装第三方库。

由于第三方库是各地的程序员写的,为了让第三方库的下载使用更加方便,Python官方提供了一个网站pypi将所有的第三方库收集起来,又提供了一个pip工具,使用pip就可以直接从pypi上下载想要的第三方库了,就如同我们可以在手机的“应用商店”里下载所有想要的第三方应用一样。

安装Python的时候,pip已经自动安装好了,可以直接使用。

pip是一个命令行程序。我们可以在Pycharm页面的左边看到“终端”

或者按下开始 + R键,在框中输入cmd打开控制台。

如果敲下pip,看到一大堆帮助选项,说明pip可以直接使用了。

如果没有显示这些帮助选项,而是显示“pip既不是内部或外部命令,也不是可运行程序”,说明当初安装Python的时候没有选择“Add Python ... to PATH”,此时可以重新安装Python或者手动把pip所在的目录添加到PATH这个环境变量里(网上搜一下如何添加)。手动操作完了之后要重启一下。

接下来,使用pip install [库名]就可以完成第三方库安装了。这个命令需要从网络上进行下载,使用时要保证网络畅通。

安装成功后,就可以使用import导入相关模块,进行使用了。

如果使用pip安装完第三方库之后再Pycharm中仍然提示找不到对应模块,检查设置->项目->Python解释器,看看当前Python解释器设置的是否正确(如果一台电脑安装了多个版本的Python,可能出现这种情况,可能把第三方库安装到别的Python版本下面去了,此时重新设置解释器即可)。

二、二维码生成工具

接下来我们使用第三方库完成一段生成二维码的代码。

二维码本质上就是一段字符串,我们可以把任意字符串制作成一个二维码图片。生活中使用的二维码,更多的是一个URL(网址)。

网上搜索可知要用到qrcode这个库。我们上pypi官网查一查这个库的相关信息。

我们把文档中的这句命令复制到Pycharm终端进行执行,就可以安装这个库了。

具体的用法还是参考文档:

我们仿照这个示例写一段代码,就可以把想要的信息变成二维码了。

import qrcode

s = 'https://blog.csdn.net/dev_jin?spm=1011.2266.3001.5343'
img = qrcode.make(s)
type(img)
img.save('qrcode.png')

三、操作excel

首先我在‘d:\PythonProject’路径下准备好一个xlsx文件。

读取excel可以使用xlrd模块。我们使用pip来安装一下。

接下来写个代码读取表格中的内容。

import xlrd

# 打开 xlsx 文件
xlsx = xlrd.open_workbook('d:\\PythonProject\\test.xlsx')
# 获取到指定的标签页
table = xlsx.sheet_by_index(0)
# 获取表格中有多少行,保存下来,方便一会儿设置循环次数
nrows = table.nrows
print(f'nrows = {nrows}')

这里的nrows表示下标,是从0开始的。接下来我们就可以进行循环统计操作。

我们先用一个for循环把表格中记录的所有同学的姓名、班级、学号都打印出来看看。

import xlrd

# 打开 xlsx 文件
xlsx = xlrd.open_workbook('d:\\PythonProject\\test.xlsx')
# 获取到指定的标签页
table = xlsx.sheet_by_index(0)
# 获取表格中有多少行,保存下来,方便一会儿设置循环次数
nrows = table.nrows
# 进行循环操作
for i in range(1, nrows):
    # 拿到当前同学的姓名
    print(table.cell_value(i, 0))
    # 拿到当前同学的班级
    print(table.cell_value(i, 1))
    # 拿到当前同学的分数
    print(table.cell_value(i, 2))
    print('--------------------------')

可以看到表格中姓名、班级、成绩的信息都成功打印出来了。

现在假设我们要计算1班同学的平均成绩。我们只需在循环中加上一个条件判断,判断该同学为1班同学时,把ta纳入平均值计算。

import xlrd

# 打开 xlsx 文件
xlsx = xlrd.open_workbook('d:\\PythonProject\\test.xlsx')
# 获取到指定的标签页
table = xlsx.sheet_by_index(0)
# 获取表格中有多少行,保存下来,方便一会儿设置循环次数
nrows = table.nrows
# 进行循环操作
total = 0
count = 0
for i in range(1, nrows):
    classId = table.cell_value(i, 1)
    if classId == 1:
        total += table.cell_value(i, 2)
        count += 1
print(f'平均分:{total / count}')

四、鼓励师

接下来我们编写一个程序,让电脑每隔一段时间发出声音来鼓励我们一下,以提高工作的积极性。要实现这个功能,我们要用到playsound第三方库用来让电脑播放声音。为了达到鼓励效果,可以让程序监听键盘按键,比如连续按键N次,就播放一个音频,而且让每次播放的音频不同。这可以用pynput第三方库来实现。

我们先用pip来安装这两个第三方库。

我们用稍微旧一点的版本,因为最新的版本可能有问题。

然后,我从网上下载三个鼓励音效,打开pycharm,把这些音频文件拷贝到项目中。

像这些文件,我们称之为程序的资源文件。

接下来我们创建一个Listener对象,将它赋给listener。创建这个变量之后,用户按键盘的动作就会被捕获到。接着我们来写一个回调函数,在用户按下按键时调用。

from pynput import keyboard


def onRelease(key):
    """
    :param key: 用户按下了哪个键
    这个函数不是我们自己主动调用,而是把这个函数交给了Listener,
    由Listener 在用户释放按键的时候自动调用。
    这样的函数叫做回调函数(callback function)
    """
    print(key)


# 创建 Listener 之后,用户的键盘按键动作就会被捕获到
# 我们还希望在补货到之后能够执行一段代码
listener = keyboard.Listener(on_release=onRelease)
listener.start()
listener.join()

把这个程序运行起来,接下来我们每按一个键就会在输出中看到按下的内容。

接下来我们就可以写出完整的代码了。我们让用户每按下十次键盘就听到一段鼓励音频,并利用随机数让用户可以听到不同的音频。

from pynput import keyboard
from playsound import playsound
import random

soundlist = ['sound\\1.mp3','sound\\2.mp3','sound\\3.mp3']

count = 0


def onRelease(key):
    """
    :param key: 用户按下了哪个键
    这个函数不是我们自己主动调用,而是把这个函数交给了Listener,
    由Listener 在用户释放按键的时候自动调用。
    这样的函数叫做回调函数(callback function)
    """
    global count
    count += 1
    if count % 10 == 0:
        # 播放音频!
        i = random.randint(0,len(soundlist)-1)
        playsound(soundlist[i])

# 创建 Listener 之后,用户的键盘按键动作就会被捕获到
# 我们还希望在捕获到之后能够执行一段代码
listener = keyboard.Listener(on_release=onRelease)
listener.start()
listener.join()

不过,此处的播放音频消耗时间比较多,可能会引起输入卡顿。对此,我们可以创建一个线程,在线程里面播放音频。

优化后的代码是这样的:

from pynput import keyboard
from playsound import playsound
import random
from threading import Thread

soundlist = ['sound\\1.mp3','sound\\2.mp3','sound\\3.mp3']

count = 0


def onRelease(key):
    """
    :param key: 用户按下了哪个键
    这个函数不是我们自己主动调用,而是把这个函数交给了Listener,
    由Listener 在用户释放按键的时候自动调用。
    这样的函数叫做回调函数(callback function)
    """
    global count
    count += 1
    print(key)
    if count % 10 == 0:
        # 播放音频!
        i = random.randint(0,len(soundlist)-1)
        #playsound(soundlist[i])
        t = Thread(target=playsound, args=(soundlist[i],))
        t.start()

# 创建 Listener 之后,用户的键盘按键动作就会被捕获到
# 我们还希望在捕获到之后能够执行一段代码
listener = keyboard.Listener(on_release=onRelease)
listener.start()
listener.join()

现在再运行一下程序,流畅多了。

END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值