os.system(“start”)错误处理

时间:2017-04-20 16:12:01

标签: python python-3.x error-handling operating-system

我要求使用os库输入文件名,当按下打开按钮时会打开输入的文件,这样可行,但如果用户输入的文件不存在则会抛出一个windows错误,shell中会显示以下内容吗?

The system cannot find the file ______.

有没有办法在没有Windows错误的情况下处理此问题?就像使用try和except语句一样。

由于

2 个答案:

答案 0 :(得分:0)

除了从您的平台暂停错误之外,我还会寻求独立于平台的解决方案。您可以使用os.path.exists检查目录或文件是否存在,如果存在则将命令传递给os.system以打开文件:

if os.path.exists(path):
    os.system(...)
else: 
    # file does not exist 
    ...

我不建议使用os.system,你真的会以这种方式使应用程序的安全性变得脆弱。

答案 1 :(得分:0)

您可能希望使用system模块。

,而不是使用subprocess

您可以致电os.path.isfile来检查文件是否存在,或者您可以将exception提升为:

if os.path.isfile('your_file'):
    # If required, you can read your file's output through this way
    output = subprocess.Popen(['./your_file'], stdout = subprocess.PIPE)

或者,

try:
    output = subprocess.Popen(['./your_file'], stdout = subprocess.PIPE)
except FileNotFoundError as e:
    print('Oops, file not found')

查看subprocess模块here的文档。