Воспроизведение аудиофайла при нажатой клавиатуре

#python #os.system

#python #os.system

Вопрос:

У меня есть следующий код, в котором я записываю вводимые пользователем данные, а затем я хочу проанализировать его и оценить каждый символ в строке, используя код ASCII для воспроизведения определенного файла .mp3:

Проблема в том, что этот код работает только для первого символа. Например, если у меня есть ввод, поскольку ab я слышу только аудиофайл для a и не b

 import os 

wrd=raw_input("Please write something: ") 
wrd=(str(wrd)).lower() 
wrd=list(wrd) 
i=0 
print (wrd[0:len(wrd):1]) 

for wrd[i] in wrd:
    print wrd[i]
    if ord((wrd[i]))==97:
        os.system("start C:/Users/letters/a(1).mp3")
        i =1
    if ord((wrd[i]))==98:
        os.system("start C:/Users//letters/b(1).mp3")
        i =1
  

Комментарии:

1. вы используете for странным образом. Используйте for char in wrd: , и вам не нужно i

2. что вы слышите при вводе ba ? возможно, файл поврежден или вы используете неправильный путь.

Ответ №1:

Если имя файла mp3 всегда следует по пути «буква (1), mp3», вы можете сделать что-то вроде:

 import os

wrd = input("Please write something: ")
wrd = wrd.lower()

for char in wrd:
   try:
       os.system("start "   char  '(1).mp3')
   except:
       ValueError
  

в противном случае вы можете использовать словарь и заполнить его правильным именем файла для каждой буквы:

 db = {
   'a': 'C:/Users//letters/a(1).mp3',
   'b': 'C:/Users//letters/b(1).mp3'
   # etc
}
...
   try:
       os.system("start "   db[char])
...
  

Комментарии:

1. Это работает, но я думаю, что должно быть время.sleep() где-то, потому что очень быстро, вы можете услышать только последнюю букву строки, например, если на входе si: ab я слышу только букву b. Спасибо