Python 第三方库实战与综合案例
3 ~> 第三方库
3.5 代码示例:'程序猿鼓励师'
有些公司会设有程序猿鼓励师这样一个岗位,程序猿敲代码很辛苦,需要鼓励。很多公司没有这样一个岗位怎么办?程序猿自己来实现一下这个功能,自己鼓励一下自己。
监听键盘按键,每按键一定次数,就自动播放一个音频,鼓励一下辛苦搬砖的自己。
3.5.1 安装第三方依赖
pynput用于监听键盘按键,注意版本不要用最新。playsound用于播放音频。
pip install pynput==1.6.8
pip install playsound==1.2.2
3.5.2 准备音频文件
此处准备了一个 ding.mp3 放到和 py 代码同级目录中。
3.5.3 编写代码
- 使用
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()
运行一下程序,即可感受到效果。
3.5.4 改进代码
上述代码在执行过程中,会感觉到播放音频会导致按键卡顿,可以使用多线程解决这个问题。
- 使用
threading.Thread引入多线程类。 - 使用
Thread的构造函数来构造一个线程,target表示线程要执行的任务,args表示target中要调用函数的参数。 - 使用
Thread.start()启动线程。
from pynput import keyboard
playsound playsound
threading Thread
count =
():
(key)
count
count +=
count % == :
t = Thread(target=playsound, args=(,))
t.start()
listener = keyboard.Listener(on_release=on_release)
listener.start()
listener.join()


