Добавление цикла while для попыток и исключений операторов

# import mutagen

from mutagen.easyid3 import EasyID3

from mutagen.mp4 import MP4

from mutagen.mp3 import MP3

# Define a function to read ID3 tags

def readid3mp3 (ip):

    audio = MP3(ip)

    print(audio['TALB'])
    print(audio['TIT2'])
    print(audio['TPE1'])
    return

У меня возникла проблема с добавлением цикла while в эту часть кода. Как вы можете видеть, если пользователь не вводит музыкальный файл, он печатает ("ооооо, это не музыкальный файл"), но если это произойдет, я хочу, чтобы программа продолжала спрашивать, пока пользователь не введет музыкальный файл.

####### main body ########

# prompt user to enter a MP4

song = input('enter a music file please:') 

try:

     readid3mp4(song)

except IOError:

    print("ooooops this is not a music file")

else:

    print("music file stored")

person Martin Macfadyen    schedule 20.03.2015    source источник


Ответы (1)


Вы можете использовать цикл while, в котором вы прерываетесь после правильного прочтения песни. В противном случае, если возникнет исключение, будет напечатано сообщение об ошибке, и вы продолжите работу в обычном режиме.

while True:
    try:
        readid3mp4(song)
    except IOError:
        print("ooooops this is not a music file")
    else:
        break
person JuniorCompressor    schedule 20.03.2015