and b.companyID = c.companyID
如果系统中安装了notepad ++,则应将其打开,否则应启动联机notepad ++。
但是,import webbrowser
import os
try:
response=os.system('start notepad++.exe')
except OSError:
webbrowser.open("https://www.rollapp.com/launch/notepad++")
和try
不能以这种方式工作。
它如何工作?
答案 0 :(得分:0)
这是因为OS
不会引发异常(如预期的那样)取决于操作系统,而是返回退出代码(0),该退出代码在documentation中进行了明确描述。相反,您应该考虑使用subprocess.call()
,它在其周围提供一个超集(popen
)。例如,以下方法将起作用(我会让您担心找到notepad ++安装位置hint)。
import webbrowser
import subprocess
try:
# NOTE: The hardcoded path
response=subprocess.call('C:/Program Files (x86)/Notepad++/notepad++.exe')
except OSError:
webbrowser.open("https://www.rollapp.com/launch/notepad++")
答案 1 :(得分:-1)
try / except用于您的代码执行抛出某种Exception
的情况,这种情况在您的示例中没有发生。进一步了解here
您可以在response
中查找值,以查看尝试执行的命令的退出状态。
通常,如果返回0,则命令已成功执行,否则未成功执行。
这意味着代码将如下所示:
response=os.system('start notepad++.exe')
if response != 0:
webbrowser.open("https://www.rollapp.com/launch/notepad++")