从列表设置路径的Pythonic方式

时间:2015-01-27 15:41:13

标签: python list filepath os.path

我一直在努力为我哥哥制作节目。其中一个组件是播放音频文件。我有一个大约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的数字,为简单起见。

1 个答案:

答案 0 :(得分:3)

您可以直接创建路径

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

正如emuiro建议的那样

audio_playlist = range(1, 91)

也是一种非常Pythonic的方式

正如Padraic建议的那样,

audio_playlist = random.randint(1,91)

是一种更快捷的方式