如何中止Python脚本的执行?
我有一个简单的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
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")