2016-03-09 4 views
-1

Я использую простой скрипт python для поиска и воспроизведения песен на своем ноутбуке. Код выглядит следующим образом: -Проверка наличия файла в Python 2.7

import os 
    d_name = raw_input("enter drive name:-") 
    choice = raw_input("song or video(s/v):-") 
    if(choice == 's'): 
     s_name = raw_input("enter song name:- ") 
     flag = 1 
    elif(choice=='v'): 
     s_name = raw_input("enter video name:-") 
     flag = 2 
    if(flag == 1): 
     f_s_name = "start "+d_name+":/"+s_name+".mp3" 
    elif(flag == 2): 
     f_s_name = "start "+d_name+":/"+s_name+".mp4" 
    dir_list = os.listdir("d_name:/") 
    i=0 
    while(1): 
     if(not(os.system(f_s_name))): 
      break 
     else: 
     if(flag == 1): 
      f_s_name = "start "+d_name+":/"+dir_list[i]+"/"+s_name+".mp3" 
     elif(flag == 2): 
      f_s_name = "start "+d_name+":/"+dir_list[i]+"/"+s_name+".mp4" 
    i = i+1 

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

+0

Пожалуйста, пожалуйста, удалите ненужные круглые скобки. –

ответ

2

Вы должны использовать os.path.exists, чтобы проверить, существует ли файл, который вы собираетесь start; если он не найден, не пытайтесь start, что файл:

import os 

.... 

filename = '{}:/{}/{}.mp3'.format(d_name, dir_list[i], s_name) 
if os.path.exists(filename): 
    system('start ' + filename) 
else: 
    print "File {} was not found".format(filename) 
Смежные вопросы