目标
利用python来制作一个简单的定时音乐播放器,并且为它进行打包,像我们平时使用的软件一样放在桌面使用,像下图展示,整体操作如下。
语言:python
工具:jupyter
前提准备
在终端下载打包工具
代码:pip install pyinstaller
所需要导入的库
- pygame
- radom
- time
- os
下载音乐,喜欢的歌曲,选择mp3格式,放在jupyter /music文件夹中。
代码部分:
注意点:
- 把音乐路径换为绝对路径
- r可以取消反斜杠的转义
import pygame
#导入工具包pygame
import random
#导入工具包random
import time
#导入工具包time
import os
#导入os模块
#可以处理文件和目录这些我们日常手动需要做的操作。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。
def play_music(file):#定义一个音乐播放模块
pygame.mixer.init()#进到这个工具包
pygame.mixer.music.load(file)#下载/加载file文件中的音乐
pygame.mixer.music.play()#播放音乐
time.sleep(10) #设置睡眠时间10秒
pygame.mixer.music.stop()#停止播放
def shuffle_play():
dir_list = os.listdir(r"C:\Users\1\Music")#读取音频文件夹中所有的项目
random.shuffle(dir_list)#打乱列表中的顺序
file=r"C:\Users\1\Music/"+ random.choice(dir_list)#文件夹名称+随机歌曲路径
play_music(file)#调用这个play_music把file传给它
def specific_play():
file=r"C:\Users\1\Music/GAI周延 - 沧海一声笑(剪好的).mp3"#播放特定的一首歌
play_music(file)#调用这个play_music把file传给它
def display():
print("**********************本程序已启动,请不要关闭*******************")#输出让用户看到的文字
def main():#定义一个主函数来规定程序执行顺序
display()#先调用display,让用户看到
while True:#
task_time = time.strftime("%H:%M:%S")#定义为 (时:分:秒)
time.sleep(0.8)#睡眠0.8秒
print("\r当前的系统时间",task_time,end = "")#\r作用:把光标回到行首。
#end = "" 打印完一行代码后什么都不用干,原本默认为/n 会自动换行,现在在前面加\r,把光标回到行首。看起来就像自动更新。
if task_time == "22:30:01":#如果时间到22:30:01时,可以根据自己需求变换
specific_play()#执行specific_play
break#停止
if task_time == "22:39:01":#如果时间到22:39:01时
shuffle_play()#执行 shuffle_play()
break#停止
main()#执行main函数
运行成功后
我在创建文件时给它起名为pp音乐,现将 pp音乐.ipynb文件转换成pp音乐.py文件,并且放在jupyter存放代码的路径下( 就是pp音乐.ipynb所在的路径),才能进行打包。转换方式如下file---download as---python(.py)。
音乐图标
可以随意上网搜索一张方正图形即可,然后利用ico在线生成ico图标(直接网页搜索ico就有),将.png图片转换成.ico图片。尺寸适中即可。 生成的图片同样放在pp音乐.ipynb所在的路径那里。 如下图所示,
打包
都弄好以后开始打包,(-F单独生成一个.exe的文件;-i 加图标)。
代码:pyinstaller -F -i favicon.ico pp音乐.py
细心等待打包不要急,成功与否到后面都会显示出来。成功的话会显示successfully。
失败的话,失败原因会有很多种,可以将失败原因复制粘贴,上网查查解决方法。
成功
成功以后找到dist这个文件,打包好的.exe软件就放在里面。可以直接打开软件,也可以把图标拉到桌面上使用。
点击这个图标
开始运行
待到指定的时间到了以后,就会开始播放音乐,至此软件创建成功。