python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别

这篇具有很好参考价值的文章主要介绍了python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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):有错误退出 
退出代码是告诉解释器的(或操作系统)文章来源地址https://www.toymoban.com/news/detail-401611.html

到了这里,关于python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python中os.system()、subprocess.run()、call()、check_output()的用法

    os.system() 是对 C 语言中 system() 系统函数的封装,允许执行一条命令,并返回退出码(exit code),命令输出的内容会直接打印到屏幕上,无法直接获取。 示例: Python 3.5 开始推荐使用这个方法执行命令,其原型如下: 其中: args: 可以是一个字符串(当 shell=True 时),也可以

    2024年02月12日
    浏览(29)
  • python_实现按键退出程序

    -使用keyboard库来监听键盘按键 使用keyboard库来监听键盘按键,然后在循环中不断检测是否按下了esc键 方法一: 在主线程中,我们使用keyboard.wait(‘esc’)来等待esc键按下,这会阻塞主线程直到esc键被按下。在子线程中,我们可以使用keyboard.is_pressed(‘esc’)来检测esc键是否被按

    2024年02月11日
    浏览(24)
  • python中的os.mkdir和os.makedirs的使用区别,以及如何查看某个模块中的某些字母开头的属性方法

    os.mkdir(dir_name) :用于 新建文件夹 ,当要新建的文件夹已经存在的时候,就会报错: FileExistsError: [Errno 17] File exists: 因此,我们一般在新建一个文件夹的时候,会和 os.path.exists() 集合使用,如下: 1、判断一个 文件夹是否存在 ,如果不存在就新建它,如果已经存在就跳过:

    2023年04月08日
    浏览(39)
  • Python学习.iloc和.loc区别、联系与用法

    最近接触到数据科学,需要对一些数据表进行分析,观察到代码中一会出现loc一会又出现iloc,下面对两者的用法给出我的一些理解。 (1)操作对象相同:loc和iloc都是对DataFrame类型进行操作; (2)完成目的相同:二者都是用于选取DataFrame中对应行或列中的元素。 loc和iloc索引的行

    2023年04月08日
    浏览(31)
  • Python学习笔记(一)1.Python中end=和sep=的用法与区别。

    python中常用到的end=和sep=两种参数用法相似,一个是python输出结尾,一个是python输出分割。 end: 默认是换行,表示两个字符串最后以什么结尾。 eg: 换行 end=\\\" \\\" sep: 默认是空格,表示两个字符串之间用什么分割。 eg: 空格 sep=\\\" \\\" 1.sep=用法如下,主要是在字符串中添加空格或者逗

    2024年02月04日
    浏览(32)
  • Python 程序设计入门(025)—— 使用 os 模块操作文件与目录

    Python 内置了 os 模块及其子模块 os.path,用于对目录或文件进行操作。在使用 os 模块及其子模块 os.path 模块时,需要使用 import 导入该模块,才能使用它们提供的函数或方法。 1、os 模块提供的操作目录的函数 os 模块提供的操作目录的函数如下表所示: 函数 说明 getcwd() 返回当

    2024年02月11日
    浏览(33)
  • Python中read()、readline()和readlines()三者间的区别和用法

    在python中读取文件常用的三种方法:read(),readline(),readlines() 假设a.txt的内容如下所示: read([size])方法从文件当前位置起读取size个字节,若无参数size,则表示读取至文件结束为止,它范围为字符串对象 输出结果: 从字面意思可以看出,该方法每次读出一行内容,所以,读取时

    2024年03月13日
    浏览(35)
  • python之sys库

    sys.argv 命令行参数List,第一个元素是程序本身路径 sys.modules.keys() 返回所有已经导入的模块列表 sys.exc_info() 获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息 sys.exit(n) 退出程序,正常退出时exit(0) sys.hexversion 获取Python解释程序的版本值,16进制格

    2023年04月15日
    浏览(30)
  • Python标准库sys

    Python实用教程_spiritx的博客-CSDN博客 sys 模块主要负责与 Python 解释器进行交互,该模块提供了一系列用于控制 Python 运行环境的函数和变量。 对象名称 对象说明 sys.argv 命令行参数List,第一个元素是程序本身路径  sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的

    2024年02月09日
    浏览(25)
  • 18 Python的sys模块

    概述         在上一节,我们介绍了Python的os模块,包括:os模块中一些常用的属性和函数。在这一节,我们将介绍Python的sys模块。sys模块提供了访问解释器使用或维护的变量,以及与解释器进行交互的函数。 通俗来讲,sys模块负责程序与Python解释器的交互,提供了一系列

    2024年02月07日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包