Старый поток, но может помочь будущим читателям ...
Я бы избегал использования .lower () в именах файлов, если только по какой-либо другой причине, кроме каксделайте ваш код более независимым от платформы.(linux является чувствительным к регистру, .lower () в имени файла, несомненно, в конечном итоге повредит вашу логику ... или, что еще хуже, важный файл!)
Почему бы и нетиспользовать re ?(Хотя, чтобы быть еще более надежным, вы должны проверить магический заголовок каждого файла ... Как проверить тип файлов без расширений в python? )
import re
def checkext(fname):
if re.search('\.mp3$',fname,flags=re.IGNORECASE):
return('mp3')
if re.search('\.flac$',fname,flags=re.IGNORECASE):
return('flac')
return('skip')
flist = ['myfile.mp3', 'myfile.MP3','myfile.mP3','myfile.mp4','myfile.flack','myfile.FLAC',
'myfile.Mov','myfile.fLaC']
for f in flist:
print "{} ==> {}".format(f,checkext(f))
Вывод:
myfile.mp3 ==> mp3
myfile.MP3 ==> mp3
myfile.mP3 ==> mp3
myfile.mp4 ==> skip
myfile.flack ==> skip
myfile.FLAC ==> flac
myfile.Mov ==> skip
myfile.fLaC ==> flac