Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从列表设置路径的Pythonic方法_Python_List_Filepath_Os.path - Fatal编程技术网

从列表设置路径的Pythonic方法

从列表设置路径的Pythonic方法,python,list,filepath,os.path,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)

我一直在努力为我弟弟制作一个节目。其中一个组成部分是播放音频文件。我有一个大约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... :(

有没有更像蟒蛇的方法?另外,我如何做到这一点,以便设置我的歌曲的路径,这样我就不必编写数百行代码,而是使用一些非常简单的东西,大约只有10-15行代码。还要注意的是,
song\u path
中的文件基本上只是带有
.mp3
的数字,为了简单起见,您可以直接使用它来创建路径

if 1<= sel_song <=90:
    s.path.join(directory, "{}.mp3".format(sel_song))
这也是一种非常类似蟒蛇的方式

正如建议的那样

audio_playlist = random.randint(1,91)

是一种更快的方式

为什么不
s.path.join(目录,{}.mp3.format(sel_-song))
?另外:
audio_playlist=[1,2,3,4,…一直到90]
可以写成
audio_playlist=range(1,91)
Wow!真是太快了!那救了我@Zizouz212硬编码“90”和命名方案从来都不是一个好主意。更好的做法是,只需找出音频文件(使用类似的内容),然后使用
choice
随机获取一个。这样做不会破坏你现在拥有的任何东西(它会继续处理你现在拥有的文件)。但是你的代码会更健壮,以后添加文件会容易得多。这对我来说非常有用!非常感谢你!10分钟后接受…:D
random.randint(1,90)
忘记选择,尽管硬编码“90”从来都不是一个好主意。更好的办法是找出音频文件(类似的),然后使用
choice
随机获得一个。@RafaelLerm OP自己说他需要硬编码:)@BhargavRao我不知道我是否误解了他,但他只说“请不要问我为什么我有90个”。他似乎说,硬编码90和命名方案(“
{n}.mp3
”)是可以的,但我相信,如果能做得更好、更健壮,它总是一个加号。
audio_playlist = random.randint(1,91)