2016-03-26 22 views
0

Bazı sorunları mpg321 kullanarak rastgele bir ses çalma yaşıyorum. İlk önce tüm seslerin bir listesini oluşturuyorum ve aynı zamanda uzunluğu I değişkenine kaydediyorum, daha sonra 0 ile o listenin uzunluğu arasında rastgele bir sayı yaratıyorum. Sorunum, dosya yolu için os.system() içindeki dizeye nasıl ekleneceğini bilmiyorum.Python 3 ve mpg321 biçimlendirme

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 

Ben% s kullanarak ve ./sounds/ sonra değişkeni koyarak denedim ama sadece bir argüman alır) (os.system söyleyen bir sözdizimi hatası alıyorum.

Herhangi bir yardım için teşekkür ederiz.

+0

Bir çözüm buldum. Ben sadece bir dize mpg321./sounds/ ve dosya adı için başka bir dize yaptım ve os.system() – Loxstomper

+0

içinde bu iki dizeleri eklediniz lütfen cevabınızı yazınız ve sorunuzu çözülmüş olarak işaretleyiniz :) –

+0

MrP01'in cevabını kullanarak bitirdim – Loxstomper

cevap

1

sorun, ben os.system çok daha yakışıklı API sağlar alt işlemi, kullanmak istiyorsunuz değil arada işlev çağrısı

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

üzerine, dize biçimlendirme dize yapmak gerekir olmasıdır ! (https://docs.python.org/3/library/subprocess.html#subprocess.call)

import subprocess 
subprocess.call(["mpg321", "./sounds/%s" % next_sound])