2015-01-27 11 views
1

나는 동생을위한 프로그램을 만들려고 노력해 왔습니다. 이것의 구성 요소 중 하나는 오디오 파일을 재생하는 것입니다. 나는 약 90 개의 오디오 파일 목록을 가지고있다. (왜 내가 90을 가지고 있는지 묻지 말아라.) 나는 무작위로 하나를 선택하여 연주하려고한다. 그러나이를 재생하려면 경로를 찾은 다음 코드를 다른 섹션으로 연결해야합니다 (아직 수정 중입니다). 이 일을 더 파이썬 방법은리스트에서 경로를 설정하는 Pythonic 방법

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... :(

있나요이 내가 무작위로 선택된 곡의 경로를 생성하는 방법이다,

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") 

을 지금이 내가 지금까지 가지고 무엇인가? 또한 어떻게하면 코드의 수백 줄을 쓸 필요가 없도록하기 위해 내 노래의 경로를 설정하는 것이 아니라 매우 단순하고 약 10-15 줄의 코드 만 사용하여 어떻게 만들 수 있을까요? 또한 song_path의 파일은 기본적으로 단순한 숫자로 .mp3 인 숫자입니다.

+3

왜 's.path.join (directory, "{} .mp3".format (sel_song))'이 아니겠습니까? –

+3

또한 :'audio_playlist = [1, 2, 3, 4, ... 90 번까지]'audio_playlist = range (1, 91)'로 쓸 수 있습니다. – eumiro

+0

와우! 정말 빨랐어! 그게 나를 구할 수있어! – Zizouz212

답변

3

직접,

audio_playlist = range(1, 91) 

그리고 Padraic로 제안 아주 파이썬 방법이 있나요

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

그리고 emuiro로는

을 제안 경로를 만들 수로 할 수 있습니다

audio_playlist = random.randint(1,91) 

더 빠른 방법입니다.

+0

이것은 저에게 경이로운 작품입니다! 정말 고맙습니다! 10 분 안에 수락 ... : D – Zizouz212

+0

@ Zizouz212 당신은 환영합니다 !!! –

+2

'random.randint (1,90)'및 선택을 잊어 버림 –

관련 문제