os._exit() import sys sys.exit()

os._exit() 本身不抛出异常,直接将python程序终止退出,之后的所有代码都不会执行。os._exit(n)退出的机制是调用 C 语言的 _exit() 函数。__builtin__.exit 是一个 Quitter 对象,这个对象的 __call__ 方法会抛出一个 SystemExit 异常。常用在子线程的停止中。

sys.exit() 会抛出一个异常: SystemExit,异常也是对象,所有异常都是基类Exception的成员。python的异常名称放在内建命名空间中,所以不必导入exception模块。如果这个异常没有被捕获,那么python解释器将会退出。如果有捕获该异常的代码,那么这些代码还是会执行。sys.exit(n)一般在交互式shell中退出时用到;n默认0,正常退出,可以捕获异常执行些清理工作。其他数值(1-127)为不正常,可抛异常事件供捕获。

一般来说os._exit() 用于在线程中退出。
sys.exit() 用于在主线程中退出。

举个例子

import os
    os._exit(0)
except:
    print('Program is dead.')

这个print是不会打印的,因为没有异常被捕获。

python退出if语句 python退出代码怎么写_子线程_02

import sys
    sys.exit(0)
except:
    print('Program is dead.')
finally:
    print('clean-up')

这里两个print都可以打印,因为sys.exit()抛出了异常。

python退出if语句 python退出代码怎么写_参考文献_03

结论

使用sys.exit()来退出程序比较优雅,调用它能引发SystemExit异常,然后我们可以捕获这个异常做些清理工作。而os._exit()将python解释器直接退出,后面的语句都不会执行。

一般情况下用sys.exit()就行;os._exit()可以在os.fork()产生的子进程里使用。

用python写工具 python写小工具

哈喽,大家好,今天给大家介绍两个 Python 好用的小工具。虽然用法简单,却能大大提高开发效率。1. tqdm当程序中for循环需要消耗大量时间来执行的时候,往往我们会添加一个计数器输出程序执行的进度。这种方式的缺点在于需要写一些与业务无关的代码,并且打印的信息过多。如果我们用tqdm可以用进度条的方式显示程序的执行进度,可以有效地避免上述缺点。使用方式非常简单import time