是否可以从交互式运行循环退出到终端?

时间:2016-05-09 18:21:43

标签: python python-3.x terminal console exit

首先让我说抱歉我无法再进一步压缩这个问题。这是一个非常简单的概念,但我发现很难用一种可以普遍理解的方式来表达。我在下面使用的许多单词都被抛到一边,所以你不得不设置一个完整的场景来清晰地使用它们。

我在交互模式下运行游戏脚本,这样如果我以异常方式打破它,我仍然可以与游戏环境(类,对象和变量)进行交互。

myScript.py:

def game():
  print("")
  print("Starting game loop...")
  display=0
  while True:
    print(display)
    command = input("Press ENTER to proceed...")

game()

但每次我更新脚本时,我都必须通过指定' console'来解决break的循环。在用户提示符下,然后在控制台上调用exit(),然后返回到终端,然后我可以运行新的脚本。

所以我将这些行添加到游戏循环中:

  if command.lower() == "console":
    print("")
    break
  elif command.lower() == "terminal"
    #exit() throws an exception
    #`import sys` nl `sys.exit()` throws an exception
  else:
    display+=1
    print("")
    print("Continuing game loop...")

输出:

user@user-VirtualBox-Ubuntu:~$ python3 -i /home/username/scripts/myScript.py

Starting game loop...
0
Press ENTER to proceed, enter 'console' to halt and 'terminal' to leave...

Continuing game loop...
1
Press ENTER to proceed, enter 'console' to halt and 'terminal' to leave...

Continuing game loop...
2
Press ENTER to proceed, enter 'console' to halt and 'terminal' to leave...

Continuing game loop...
3
Press ENTER to proceed, enter 'console' to halt and 'terminal' to leave... console

>>>

正如你在上面所看到的,我已经准备了一个elif环境,可以跳过一个步骤然后直接进入终端,然后我可以按两次UP来查找clear然后再按UP两次以查找我的交互式脚本调用行。但是,我在SO上找到的唯一相关解决方案就是你可以在我的myScript.py文件中看到的涉及导入sys的问题,这会引发错误。

那么,是否可以从脚本生成exit()(从命令行输入时)的行为而不产生异常?

0 个答案:

没有答案