python - 如何打印歌曲索引及其名称?
问题描述
我正在构建一个 AI 助手,我想为其添加一个选项,它可以播放我按名称选择的音乐,并且只播放那首特定的歌曲。
import os
music_dir = "C:\\Users\\Mahdi\\Downloads\\Music"
songs = os.listdir(music_dir)
input1 = input("Enter the song name: ")
print (songs)
song = os.startfile(os.path.join(music_dir, songs[1]))
根据有用的评论,我现在将代码更改为:
import os
music_dir = "C:\\Users\\Mahdi\\Downloads\\Music"
songs = os.listdir(music_dir)
for i in range(len(songs)):
print (songs[i])
input1 = int(input("Enter the song index: "))
song = os.startfile(os.path.join(music_dir, songs[input1]))
当我运行它时,它会显示一个歌曲名称列表,并通过它的索引询问我想播放哪首歌。有什么方法也可以打印索引吗?因此,例如,当我运行它时,它显示:
0 song name1
1 song name2
...
解决方案
将您的代码更改为下面的代码段,它应该可以正常工作。
import os
import sys, subprocess
print(sys.platform)
music_dir = "C:\\Users\\Mahdi\\Downloads\\Music"
songs = os.listdir(music_dir)
print (songs)
input1 = input("Enter the song name: ")
opener = "open" if sys.platform == "darwin" else "xdg-open"
subprocess.call([opener, os.path.join(music_dir, input1)])
os.startfile()
不适用于 Linux 或 Mac,仅适用于 Windows。
推荐阅读
- python - SQLAlchemy with_for_update 行锁定不起作用?
- html - 如何避免在 Html 中输入类型元素的末尾添加逗号?
- c - 如何正确使用 realloc 来动态调整二维矩阵的大小?
- python - AttributeError:模块“hyperopt”没有属性“uniform”
- java - 是重载方法更好,还是使用 varargs 传递 0 到 1 个变量?爪哇
- amazon-web-services - 配置 CloudWatch Events 以使用 Terraform 将输入发送到 Lambda 函数
- node.js - sh:1:节点:未找到(npm ERR!yorkie@1.0.3 安装)
- angular - 从函数中访问类变量
- python - Beautiful Soup 在现有元素上返回 None
- android - 将字符串解析为日期和格式