os._exit() 和 sys.exit()

os._exit() vs sys.exit()

概述

Python的程序有两中退出方式:os._exit(), sys.exit()。本文介绍这两种方式的区别和选择。

os._exit()会直接将python程序终止,之后的所有代码都不会继续执行。

sys.exit()会引发一个异常:SystemExit,如果这个异常没有被捕获,那么python解释器将会退出。如果有捕获此异常的代码,那么这些代码还是会执行。捕获这个异常可以做一些额外的清理工作。0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。

举例说明

1 import os

2

3 try:

4 os._exit(0)

5 except:

6 print 'die.'

此处不会打出”going to die”

import sys

try:

sys.exit(0)

except:

print 'die'

finally:

print 'cleanup'

输出:

die

cleanup

区别

综上,sys.exit()的退出比较优雅,调用后会引发SystemExit异常,可以捕获此异常做清理工作。os._exit()直接将python解释器退出,余下的语句不会执行。

一般情况下使用sys.exit()即可,一般在fork出来的子进程中使用os._exit()

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

sys.exit() 用于在主线程中退出。

exit() 跟 C 语言等其他语言的 exit() 应该是一样的。

os._exit() 调用 C 语言的 _exit() 函数。

builtin

.exit 是一个 Quitter 对象,这个对象的

call

方法会抛出一个 SystemExit 异常。

exit(0)和exit(1)

exit(0):无错误退出

exit(1):有错误退出

退出代码是告诉解释器的(或操作系统)

python exit 0_python中 os._exit() 和 sys.exit(), exit(0)的用法和区别相关推荐

  1. python 捕捉 ctrl+c 异常方法, os._exit() 和 sys.exit() 的用法和区别

    这里写自定义目录标题 python 捕捉 ctrl+c 异常方法 第一种方法 第二种方法使用 signal 模块 python 中 os._exit() 和 sys.exit() 的用法和区别 概述 ...

  2. Python中 rstrip()、 lstrip()、 strip() 的用法和区别

    目录: 题目一:Python中 rstrip(). lstrip(). strip() 的用法和区别 题目二:python中append().expend()函数的用法和区别 题目三:Python中z ...

  3. Python标准库中os模块的environ获取系统的环境变量

    应用背景:我们想要用Python获取到一些有关系统的各种环境变量信息的时候可以考虑使用Python标准库中的os模块的environ.什么是环境变量,环境变量是程序和操作系统之间的通信方式.有些字符不 ...

  4. 在Linux中,_exit()、exit(0)、exit(1)、和return的区别!!

    功能: _exit() :退出程序: exit(0):运行正常退出程序: exit(1):运行异常退出程序: return():返回函数,若在主函数中,则会退出函数并返回值. _exit() 和 ex ...

  5. Python学习日记(十七) os模块和sys模块

    os模块 1.os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 import os print(os.getcwd()) #C:\Users\Administrator\ ...

  6. python中quit函数用法_关于 Python 中的退出命令:sys.exit(n), os._exit(n), quit(), exit()...

    sys.exit(n) 标准的退出函数,会抛出一个 SystemExit 异常,可以在捕获异常处执行其他工作,比如清理资源占用 如果 n 为 0,则表示成功; 非 0 则会产生非正常终止 另外,除了可 ...

  7. Python os._exit() sys.exit() exit()区别

    Python退出程序的方式有两种:os._exit(), sys.exit() 1)os._exit() 直接退出 Python程序,其后的代码也不会继续执行. 2)sys.exit() 引发一个 S ...

  8. exit的用法python_python 中exit,sys.exit,os._exit用法

    exit exit() 可以退出某个程序,余下语句不执行,而其中的数字参数则用来表示程序是否是碰到错误而中断. exit(1) 表示程序错误退出 exit(0) 表示程序正常退出 test.py: # ...

  9. python sys.exit_Python程序退出方式(sys.exit() os._exit() os.kill() os.popen(...))

    对于如何结束一个Python程序或者用Python操作去结束一个进程等,Python本身给出了好几种方法,而这些方式也存在着一些区别,对相关的几种方法看了并实践了下,同时也记录下. 参考: Pytho ...

最新文章

  1. 使用存储过程更新数据库!成功了但是返回值为 -1 的变态问题的解决办法!
  2. 设置路径是服务器上的文件,设置服务器文件路径
  3. cuda-convnet2编译
  4. for of 的用法区别_ES6语法:var、let、const的区别详解
  5. 使用Preference保存设置
  6. 20190624 Oracle 表分析
  7. BLIP:用更干净更多样的数据进行多模态预训练,性能超越CLIP!代码已开源!...
  8. 录入班级学生姓名科目成绩_如何利用钉钉发布考试成绩
  9. hbase shell相关命令
  10. matlab 追赶法
  11. kafka partition分配_【kafka】消费者对应的分配partition分区策略
  12. 文件的读写学习笔记和我的第一个网页
  13. 对比目录差异,涉及到LINUX要小心,无法发现大小写问题
  14. @postconstruct 不执行_一张图:Spring Boot 应用在启动阶段执行代码的几种方式
  15. 微信小程序常用api及语法
  16. [原创]用逻辑嗅探破解接触式IC卡口令
  17. 看看雅虎助手是如何“兔子”和“360安全卫士”的
  18. Android Studio报错Error:java.lang.RuntimeException: Crunching Cruncher xx.png failed, see logs
  19. java项目图片保存在服务器,idea2019配置,Javaweb项目实现上传图片保存到本地文件文件夹,Tomcat服务器...
  20. 【NLP】讯飞英文学术论文分类挑战赛Top10开源多方案--1 赛后总结与分析

热门文章

  1. TCP/UDP网络编程入门教程之二:TCP Server端——socket与文件描述符
  2. php承载,javascript,php_如何防止无限循环的php CPU承载过重?,javascript,php - phpStudy...
  3. 程序员基本功03常见JAVA集合的实现细节
  4. python logistics regression_Python——sklearn 中 Logistics Regression 的 coef_ 和 intercept_ 的具体意义...
  5. php数据处理工具,数据处理的PHP类
  6. 软件测试python基础_软件测试学习教程——python基础
  7. python logging模块的作用_【python】【logging】python日志模块logging常用功能
  8. java resume过时方法_面试官没想到,一个 Java 线程生命周期,我可以扯半小时
  9. 风格迁移应用_图像也能做情感迁移?罗切斯特大学团队提出计算机视觉新任务...
  10. Qt的qrc资源文件在Visual studio编译出的Qt程序中不能显示问题解决