我对python还是很陌生,所以我决定创建一个程序,询问用户如果键入它,他们想打开哪个应用程序。
如果用户在提示代码中键入的不是应用程序的其他内容,我想问一下“重置”或“返回”到原始状态的问题,因此我不必继续打开新终端标签来实现这一目标,但我不知道如何!
这里有一些代码只是为了获得一个想法:
import os
import subprocess
print ('What do you want to open?')
prompt = raw_input('> ')
if prompt == 'safari':
print('Opening Safari...')
subprocess.call(
["/usr/bin/open", "-W", "-n", "-a", "/Applications/Safari.app"]
)
else:
print ('No Applications have been selected!')
#Return to the original question#
答案 0 :(得分:1)
将永远循环的while True
怎么样?
import os
import subprocess
while True:
print ('What do you want to open?')
prompt = raw_input('> ')
if prompt == 'safari':
print('Opening Safari...')
subprocess.call(["/usr/bin/open", "-W", "-n", "-a", "/Applications/Safari.app"])
elif prompt == 'quit':
break # will break out of the while loop and exit the program
else:
print ('No Applications have been selected!')
#Return to the original question#
@FedericoS建议,在需要时使用break
语句跳出循环。
请注意,如果发生异常,您的程序仍然可能崩溃。为确保不会,请查看Python中的异常处理。
还要注意,由于subprocess.call
的阻塞性,该脚本仅在启动的进程退出时才循环返回。如果您希望立即返回,请考虑使用subprocess.Popen
。