2016-03-26 2 views
0

mpg321を使用してランダムなサウンドを再生する際にいくつかの問題があります。 まず、すべてのサウンドのリストを作成し、その長さを変数に格納します。次に、0とそのリストの長さの間の乱数を作成します。私の問題は、os.system()内の文字列にファイルパスを追加する方法がわかりません。Python 3とmpg321をフォーマットする

sounds = os.listdir('./sounds/') # creates list of all sound names 
totalSounds = len(sounds) 

sound_number = random.randint(0, len(sounds)) 
next_sound = str(sounds[sound_number]) 

soundPlaying = True 
os.system('mpg321 ./sounds/%s') % next_sound 
soundPlaying = False 

私は%sが使用して./sounds/後に変数を入れて試してみましたが、私は一つだけ引数を取る)、引数は(os.systemを言って、構文エラーを取得します。

何か助けていただければ幸いです。

+0

解決策が見つかりました。私はちょうどmpg321 ./sounds/というファイル名の文字列を作成し、ファイル名の別の文字列を作成し、それらの2つの文字列をos.system()内に一緒に追加しました。 – Loxstomper

+0

あなたの答えを投稿し、あなたの質問を解決してください:) –

+0

MrP01の答え – Loxstomper

答えて

1

問題は、あなたが、私はos.systemよりもはるかにハンサムなAPIを提供し、サブプロセスを、使用しないところで、関数呼び出し

os.system('mpg321 ./sounds/%s'%next_sound) 

に、文字列に書式設定文字列操作を行う必要があるということです! (https://docs.python.org/3/library/subprocess.html#subprocess.call

import subprocess 
subprocess.call(["mpg321", "./sounds/%s" % next_sound]) 
関連する問題