这里写自定义目录标题

  • python 捕捉 ctrl+c 异常方法
    • 第一种方法
    • 第二种方法使用 signal 模块
  • python 中 os._exit() 和 sys.exit() 的用法和区别
    • 概述
    • 区别
    • exit(0)和 exit(1)

python 捕捉 ctrl+c 异常方法

第一种方法

import systry:# 运行
except KeyboardInterrupt:# 结束sys.exit()

第二种方法使用 signal 模块

import signaldef exit(signum, frame):print('You choose to stop me.')exit()signal.signal(signal.SIGINT, exit)
signal.signal(signal.SIGTERM, exit)while 1:pass

几个常用信号:

  • SIGINT: 终止进程 中断进程 (control+c)
  • SIGTERM: 终止进程 软件终止信号
  • SIGKILL: 终止进程 杀死进程
  • SIGALRM: 闹钟信号

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

概述

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

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

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

举例说明

# -*- coding:utf-8 -*-
import os
import systry:sys.exit(0)
except:print(1)
finally:print(2)

结果

1
2
try:os._exit(0)
except:print(3)
finally:print(4)

结果, 无输出。

区别

综上, 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 捕捉 ctrl+c 异常方法, os._exit() 和 sys.exit() 的用法和区别相关推荐

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

    os._exit() 和 sys.exit() os._exit() vs sys.exit() 概述 Python的程序有两中退出方式:os._exit(), sys.exit().本文介绍这两种方 ...

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

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

  3. Python跨平台文件夹分割方法os.sep

    我们在寻找路径或者进行一些什么操作的时候,可能经常要对文件夹进行分割操作.但是在在Windows上,文件的路径分隔符是'',在Linux上是'/',这会对我们的跨平台Python程序带来很多困扰.不过 ...

  4. python 类方法 静态方法_python中类方法、类实例方法、静态方法的使用与区别

    注:使用的是Python2.7. 一.实例方法 实例方法就是类的实例能够使用的方法.如下: class Foo: def __init__(self, name): self.name = name ...

  5. windows popen 获取不到输出_彻底明白os.system、os.popen、subprocess.popen的用法和区别...

    Hello,大家好,沉寂许久,我又来了,这次给大家分享的就是上述三个方法的使用范围和区别,不熟悉的可以在这个地方画一个圆满的句号了. os.system 首先来看这个函数的文档说明 是说是在一个子sh ...

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

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

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

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

  8. python 如何中断程序、停止程序、退出程序?sys.exit()、os._exit()、os.kill()

    1. sys.exit() 执行该语句会直接退出程序,这也是经常使用的方法,也不需要考虑平台等因素的影响,一般是退出Python程序的首选方法. 该方法中包含一个参数status,默认为0,表示正常退 ...

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

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

最新文章

  1. 重庆商务学校有计算机专业吗,重庆对外经贸学院计算机科学与技术专业
  2. 餐饮供应链公司“鲜沐农场”获千万级Pre-A轮融资,未来要打造一站式采购平台...
  3. Strut2的属性驱动,模型驱动的理解
  4. Linux库概念及相关编程(动态库、静态库、环境变量)
  5. linux怎样扩容目录,Linux系统下对目录扩容的方法介绍
  6. Mybatis(13)动态sql语句if/where/foreach
  7. Java 泛型(generics)
  8. LeetCode 58 Spiral Matrix II
  9. android 继承现有控件,Android继承现有控件拓展实现自定义控件textView
  10. codeforces 1220E
  11. 美团败诉,赔偿饿了么 100 万元;华为 Mate X2 首发秒没;库克获 8 亿年终奖 | 极客头条...
  12. Java基础知识整理之static修饰属性
  13. 2021-5-record everthing
  14. HDLBits练习——Exams/ece241 2013 q7
  15. 【数字化常识】浅谈互联网企业的利器——“网络效应”
  16. ~ 关于中医给的建议~ 好好调理身体~
  17. 理财项目中宏涌晟五个投资理财基础知识
  18. Python黑科技:20行Python代码打造一个微信群聊助手
  19. Android全面屏导航栏高度,Android10全面屏开启底部手势横条,弹窗留白问题
  20. python监控linux运行程序_python linux监控程序

热门文章

  1. 呼吁重视孩子写字姿势
  2. 机器学习:生成式模型和判别式模型
  3. 12.16 Day 1 - 分布式系统架构的冰与火
  4. 推荐四个Flutter重磅开源APP项目!
  5. 《把时间当作朋友》读书笔记
  6. c语言matlab混编max函数,Matlab与C++混编 – engin.h
  7. UESTC 1638 红藕香残玉簟秋,轻解罗裳,独上兰舟。
  8. excel----身份证号校验位excel公式分析
  9. 当你在浏览器地址栏输入一个URL后回车,将会发生的事情?
  10. 关于《一种鱼眼图象到透视投影图象的变换模型》