检查Python 2.7中是否存在文件

sou*_*bey 1 python dialog

我正在使用一个简单的python脚本来搜索和播放我的笔记本电脑上的歌曲.代码如下: -

    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
Run Code Online (Sandbox Code Playgroud)

上面的程序运行正常,但是当函数os.system()的一个调用失败直到所需的条件匹配时,会弹出一个对话框,声称该歌曲在找到之前不存在.如何防止弹出该对话框?

Ant*_*ala 7

您将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)
Run Code Online (Sandbox Code Playgroud)