2024-09-29 19:29:26 发布
网友
import webbrowser import os try: response=os.system('start notepad++.exe') except OSError: webbrowser.open("https://www.rollapp.com/launch/notepad++")
如果notepad++安装在系统中,那么它应该打开,否则联机notepad++应该启动。
但是,try和{}不是这样工作的。
try
它是如何工作的?
这是因为OS不会抛出异常,因为它(正如预期的那样)非常依赖于操作系统,而是返回一个退出代码(0),该代码在documentation中有清楚的描述。相反,您应该考虑使用subprocess.call(),它提供了一个围绕它的超集(popen)。例如,下面的方法是可行的(我让您担心如何定位notepad++安装位置,hint)。在
OS
subprocess.call()
popen
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++")
try/except用于代码执行抛出某种Exception的情况,这在您的示例中没有发生。阅读更多关于这个here
Exception
您可以在response中查找值,以查看您试图执行的命令的退出状态。 通常,如果返回0,则命令执行成功,否则执行失败。 这意味着代码看起来像:
response
response=os.system('start notepad++.exe') if response != 0: webbrowser.open("https://www.rollapp.com/launch/notepad++")
这是因为
OS
不会抛出异常,因为它(正如预期的那样)非常依赖于操作系统,而是返回一个退出代码(0),该代码在documentation中有清楚的描述。相反,您应该考虑使用subprocess.call()
,它提供了一个围绕它的超集(popen
)。例如,下面的方法是可行的(我让您担心如何定位notepad++安装位置,hint)。在try/except用于代码执行抛出某种
Exception
的情况,这在您的示例中没有发生。阅读更多关于这个here您可以在
response
中查找值,以查看您试图执行的命令的退出状态。 通常,如果返回0,则命令执行成功,否则执行失败。 这意味着代码看起来像:相关问题 更多 >
编程相关推荐