从列表中设置路径的 Pythonic 方式

Pythonic way of setting path from list

我一直在努力为我弟弟做一个程序。其中一个组成部分是播放音频文件。我有大约 90 个音频文件的列表(请不要问我为什么有 90 个),我正试图随机选择一个并播放它。然而,要播放它,我必须找到它的路径,然后将路径插入我代码的另一部分(我仍在修复中)。这是我目前所拥有的:

import os, random

audio_playlist = [1, 2, 3, 4, ... all the way to 90]
sel_song = random.choice(audio_playlist)
song_path = None
base_directory = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                                              "songs")

现在,这就是我创建随机选择歌曲的路径的方式:

while song_path == None:
    if sel_song == 1:
        song_path = os.path.join(directory, "1.mp3")
    elif sel_song == 2:
        song_path = os.path.join(directory, "2.mp3")
# and i do this 90 times... :(

是否有更 pythonic 的方式来做到这一点?另外,我该怎么做才能设置我的歌曲路径,这样我就不必编写数百行代码,而是使用非常简单且只有 10-15 行代码的东西。另请注意,为简单起见,song_path 中的文件基本上只是带有 .mp3 的数字。

你可以直接把它作为创建路径

if 1<= sel_song <=90:
    s.path.join(directory, "{}.mp3".format(sel_song))

并且正如 建议的那样

audio_playlist = range(1, 91)

也是很Pythonic的方式

并且按照Padraic的建议,

audio_playlist = random.randint(1,91)

是一种更快的方式