您实际上如何退出python脚本?

时间:2019-03-15 09:27:17

标签: python exit

这些都不是kill -9或任何接近的东西。答案是什么?

import sys 
import os

try:
        exit()
        sys.exit()
        os._exit()
        quit()
except:
        print("THIS SHOULD NOT RUN")

如果任何abort()的try-catch包装或类似的阻止它无法死亡的方法,这都是Python语言的荒谬。

这不是我所知道的任何其他语言中存在的东西。 abort()是一项紧急安全措施。

3 个答案:

答案 0 :(得分:1)

接续@Mike Scotty的解释:

选择一个:(sys.exit()

sys.exit()引发异常,即SystemExit。这就是为什么您进入except-block

示例

import sys

try:
    sys.exit()
except:
    print(sys.exc_info()[0])

输出

<class 'SystemExit'>

深入

import sys

try:
    sys.exit() # this always raises SystemExit
except SystemExit:
    print("sys.exit() worked as expected")
except:
    print("Something went horribly wrong") # some other exception got raised

输出

sys.exit() worked as expected

Source

答案 1 :(得分:0)

在脚本中尝试CTRL + C,应该可以解决问题

答案 2 :(得分:0)

嗯,我不喜欢Python处理此问题的方式,但是我找到了一个解决方案,它实际上是kill -9

免责声明:很遗憾,您必须以root用户身份启动和运行该过程。

os.system("sudo kill -9 " + str(os.getpid()))