如何中止Python脚本的执行?

如何中止Python脚本的执行?,python,syntax,scripting,exit,Python,Syntax,Scripting,Exit,我有一个简单的Python脚本,如果满足条件,我希望停止执行该脚本 例如: done = True if done: # quit/stop/exit else: # do other stuff 本质上,我正在寻找一种与函数体中的“return”关键字行为等效的东西,该关键字允许代码流退出函数而不执行剩余的代码。exit()应该做到这一点。exit()应该做到这一点。如果整个程序停止使用sys.exit()否则,只需使用空返回。您可以将脚本主体放入函数中,然后从该函数返回 i

我有一个简单的Python脚本,如果满足条件,我希望停止执行该脚本

例如:

done = True
if done:
    # quit/stop/exit
else:
    # do other stuff

本质上,我正在寻找一种与函数体中的“return”关键字行为等效的东西,该关键字允许代码流退出函数而不执行剩余的代码。

exit()应该做到这一点。

exit()应该做到这一点。

如果整个程序停止使用sys.exit()否则,只需使用空返回。

您可以将脚本主体放入函数中,然后从该函数返回

import sys
sys.exit()
def main():
  done = True
  if done:
    return
    # quit/stop/exit
  else:
    # do other stuff

if __name__ == "__main__":
  #Run as main program
  main()

要退出可以使用的脚本

import sys
sys.exit()
您还可以提供退出状态值,通常为整数

import sys
sys.exit(0)
退出时为零,这通常被解释为成功。非零代码通常被视为错误。默认值是以零退出

import sys
sys.exit("aa! errors!")
打印“aa!错误!”并退出,状态代码为1

操作系统模块中还有一个_exit()函数。该函数引发SystemExit异常以退出程序,因此可以执行try语句和清理代码。os.\u exit()版本不会执行此操作。它只是结束程序而不进行任何清理或刷新输出缓冲区,因此通常不应使用它

指示os._exit()是结束通过调用os.fork()创建的子进程的正常方式,因此它在某些情况下确实有用。

您可以使用:

import sys
sys.exit(...)
或:

可选参数可以是退出代码或错误消息。两种方法都是相同的。我以前更喜欢sys.exit,但最近我改用了raise-SystemExit,因为它似乎在其他代码中更为突出(由于raise关键字)。

试试看

sys.exit("message")
它就像perl

die("message")

如果这是你要找的。即使从导入的模块/def/函数调用脚本,它也会终止脚本的执行

比我快三秒:我甚至先在shell中测试了它:-)该死的,我没有看到这个/及时反应(当然也在解释器中测试)挥动拳头;)这只适用于2.5版,后来没有一个答案建议使用这种方法?
sys.stdout.flush()
os搭配使用。\u exit(0)
正是我所需要的。谢谢这在我的蟒蛇身上不起作用。sys.exit()回溯(最后一次调用):sys.exit()AttributeError:“System”对象没有属性“exit”当前Python 3.7.0在使用
sys.exit(0)
时发出警告:
SystemExit:0 C:\Python37\lib\site packages\IPython\core\interactiveshell.py:2969:用户警告:退出:使用“退出”、“退出”,或Ctrl-D.警告(“要退出:使用“退出”、“退出”或Ctrl-D.”,stacklevel=1)
。可以吗?它是否仅因为我正在使用iPython而出现?
return
在函数外不起作用。
die("message")