Python sys.exit()在Windows 7命令提示符

时间:2015-10-15 17:47:37

标签: python cmd keyboardinterrupt

所以我有一个python脚本,我按照你期望的那样在命令提示符下运行

python myscript.py

在我的脚本中,我有一行拦截Ctrl + C,并且假设要整理一些东西并关闭脚本。

def check_for():
    while True:
        # Perform check and operation if needed

if __name__ == '__main__': 
    try:
        threading.Thread(target=check_for).start()
        # Perform script duties

    except KeyboardInterrupt:
        print "Tidying up a few things"
        # Performs tidying duties
        sys.exit()

但它似乎没有真正退出该计划。它打印消息,所以我知道它获取该中断信号,但我在命令提示符中没有控制权,当我查看任务管理器时,我看到它仍在运行的python进程。一旦我结束这个过程,我才重新获得控制权。实际上,即使程序正常运行而没有被中断,该过程仍然存在。

我的程序确实生成子线程,这就是为什么我使用 sys.exit()而不是其他方法,我听说这些方法不能被排除,并且会做更多的突然结束。

我做错了吗?有没有一个跨平台的方法(这是我认为sys.exit()是什么)?

编辑:所以我已经解决了这个问题。我创建了一个小的测试脚本,它似乎是当我创建一个线程时它不会死,因此程序永远不会退出。我已经更改了我的初始代码以显示设置。

0 个答案:

没有答案