你在python中使用什么命令来终止程序?
即。相当于基础中的“结束”,或BASH中的“退出”。
我看到“休息”会让你走出一个循环,而“退出”就会被我所不理解的“阶级”东西所束缚。 我试过了
import sys
sys.exit()
但会显示以下错误:
Traceback (most recent call last):
File "C:\Documents and Settings\....\Desktop\current file_hand\Python_1.py", line 131, in <module>
sys.exit()
SystemExit
是否有任何解决方案。
答案 0 :(得分:12)
sys.exit()
引发SystemExit
例外。
如果您没有捕获该异常,则程序结束。
由于你得到了那个输出,我不确定发生了什么,但我想你正在捕捉所有异常并自己打印出来:
try:
...
except:
print exception somehow
raise
如果是这种情况,请不要这样做。改为抓住Exception
:
...
except Exception:
...
这样你就不会捕捉到不想捕获的东西(比如SystemExit
)。
答案 1 :(得分:11)
sys.exit(error_code)
对于正常退出,Error_code将为0,由于某种错误,例如出口的1或其他正数,例如用户输入了错误的参数。
sys.exit()“在某些体系结构上未定义”,(虽然它在我的Linux机器上尝试时有效!)
official python docs更全面地解释了这一点。
所有程序和脚本遵循返回代码约定是一个非常好的主意; 0表示正常,其他表示错误,(通常为1)
例如,如果您运行一个从数据库中获取某些数据的脚本;返回0并且没有输出,意味着数据库完全正常,其中没有任何内容(或者没有与您的查询匹配)。返回1并且没有输出意味着数据库出现故障,整个过程应该中止,因为继续会破坏其他系统。
答案 2 :(得分:8)
您还应该考虑直接退出的替代方案。如果将代码包装在函数中,return
通常也可以正常工作。 (事实上,更好,因为它避免了sys.exit()的怪异。)
def main():
...do something...
if something:
return # <----- return takes the place of exit
...do something else...
main()
答案 3 :(得分:3)
sys.exit() #to exit the program
return #to exit from a function
答案 4 :(得分:2)
导入sys
sys.exit(0)
答案 5 :(得分:1)
尝试从IDE运行python解释器。在我的Windows安装中,简单的命令行python.exe
,两个选项都有效:
>>> import sys
>>> sys.exit()
或
>>> raise SystemExit
答案 6 :(得分:1)
在您的情况下,您的错误可能是您有一个正在捕获SystemExit异常的裸除块,如下所示:
import sys
try:
sys.exit(return_code)
except:
pass
解决问题的正确方法是删除除了部分,而只是捕获您可能会引发的异常。例如:
try:
# Code which could raise exceptions
except (NameError, ValueError):
# Do something in case of NameError or ValueError, but
# ignore other exceptions (like SystemExit)
但是,如果您真的希望程序退出,则以下代码将起作用:
import os
try:
os._exit(return_code)
except:
pass
即使使用 except:子句,它也会退出,因为它只是直接调用杀死进程的同名C函数。这是不推荐,除非您知道自己在做什么,因为这不会调用清理处理程序或刷新打开的IO缓冲区。