我要求使用os库输入文件名,当按下打开按钮时会打开输入的文件,这样可行,但如果用户输入的文件不存在则会抛出一个windows错误,shell中会显示以下内容吗?
The system cannot find the file ______.
有没有办法在没有Windows错误的情况下处理此问题?就像使用try和except语句一样。
由于
答案 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的文档。