2016-03-26 2 views
0

У меня возникли проблемы с воспроизведением случайного звука с использованием mpg321. Сначала я создаю список всех звуков, а также сохраняю длину в переменной. Затем создаю случайное число между 0 и длиной этого списка. Моя проблема заключается в том, что я не знаю, как добавить это в строку внутри os.system() для пути к файлу.Python 3 и mpg321 formating

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/ и другую строку для имени файла и добавил эти две строки вместе в os.system() – Loxstomper

+0

, пожалуйста, напишите свой ответ и пометьте свой вопрос как решаемый :) –

+0

Я закончил использовать ответ MrP01 – Loxstomper

ответ

1

Проблема заключается в том, что вам нужно сделать строку форматирования на строке, а не на вызов функции

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

Кстати, я хотел бы использовать подпроцесс, который обеспечивает намного более красивый, чем API os.system ! (https://docs.python.org/3/library/subprocess.html#subprocess.call)

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