这篇文章主要介绍了Python程序退出方式小结,具有一定参考价值,需要的朋友可以了解下。
对于如何结束一个Python程序或者用Python操作去结束一个进程等,Python本身给出了好几种方法,而这些方式也存在着一些区别,对相关的几种方法看了并实践了下,同时也记录下。

参考:

Python 核心编程 (第二版) 中文高清

  1. sys.exit()

执行该语句会直接退出程序,这也是经常使用的方法,也不需要考虑平台等因素的影响,一般是退出Python程序的首选方法。

该方法中包含一个参数status,默认为0,表示正常退出,也可以为1,表示异常退出。

import sys
sys.exit()
sys.exit(0)
sys.exit(1)

该方法引发的是一个SystemExit异常(这是唯一一个不会被认为是错误的异常),当没有设置捕获这个异常将会直接退出程序执行,当然也可以捕获这个异常进行一些其他操作。

  1. os._exit()

效果也是直接退出,不会抛出异常,但是其使用会受到平台的限制,但我们常用的Win32平台和基于UNIX的平台不会有所影响。

知乎上有说是调用了C 语言的 _exit() 函数(未考证)

  1. os.kill()

一般用于直接Kill掉进程,但是只能在UNIX平台上有效。

基本原理:该函数是模拟传统的UNIX函数发信号给进程,其中包含两个参数:一个是进程名,即所要接收信号的进程;一个是所要进行的操作。

操作(第二个参数)的常用取值为:

SIGINT 终止进程 中断进程

SIGTERM 终止进程 软件终止信号

SIGKILL 终止进程 杀死进程

SIGALRM 闹钟信例:

在linux平台上打开VLC视频播放器,然后查看运行的进程:进程号是 4497号
![**
然后执行os.kill操作:
执行完之后可以发现VLC视频播放器已经关闭,同时该进程也已经被Kill了。

4.Windows下Kill进程

既然在Linux下能够进行上述操作,那么Windows下也能够有相关的操作。

这里使用的是os.popen(),该方法是用于直接执行系统命令,而在Windows下其实就是使用taskkill来kill掉进程,其基本形式是,

taskkill/pid程序的PID号码

可以直接在CMD窗口下试下这个命令…

可以先打开一个计算器程序,然后使用tasklist查看该程序的pid,这里是620,所以对应的Python代码是:

mport os
if __name__ == "__main__":
pid = 620
os.popen('taskkill.exe /pid:'+str(pid))

推荐我们的python学习基地,看前辈们是如何学习的!从基础的python脚本、爬虫、django、数据挖掘等编程技术,还有整理零基础到项目实战的资料,送给每一位爱学习python的小伙伴!每天都有老前辈定时讲解Python技术,分享一些学习的方法和需要留意的小细节,点击加入我们的 [python学习者聚集地](https://jq.qq.com/?_wv=1027&k=5JIjRvv)
总结

以上就是本文关于Python程序退出方式小结的全部内容,希望对大家有所帮助

python核心编程之Python程序退出方式小结相关推荐

  1. python退出程序-Python程序退出方式小结

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

  2. Python程序退出方式小结(亲测)

    这篇文章主要介绍了Python程序退出方式小结,具有一定参考价值,需要的朋友可以了解下. 对于如何结束一个Python程序或者用Python操作去结束一个进程等,Python本身给出了好几种方法,而这 ...

  3. Python程序退出方式小结

    Python程序退出方式小结 这篇文章主要介绍了Python程序退出方式小结,具有一定参考价值,需要的朋友可以了解下. 对于如何结束一个Python程序或者用Python操作去结束一个进程等,Pyth ...

  4. python 多线程编程之_thread模块

    python 多线程编程之_thread模块 参考书籍:python核心编程 _thread模块除了可以派生线程外,还提供了基本的同步数据结构,又称为锁对象(lock object,也叫原语锁.简单锁 ...

  5. Python并发编程之threading模块

    Python并发编程之threading模块 threading 模块 1. Timer对象 2. Lock对象 3. RLock 4. 信号量和有边界的信号量 5. 事件 6. 条件变量 7. 使用 ...

  6. 学习python下载哪个版本_听学编程之Python 一、Python版本和安装

    本文应听友要求,根据喜马拉雅上的音频节目『听学编程之Python』整理所得. python是好是坏,我就不多啰嗦了,既然你收听了这个教程,那就说明你要学这个语言了.基本不会亏的.这个语言很有用,完全可 ...

  7. Python高效编程之88条军规(2):你真的会格式化字符串吗?

    目录 1.  C风格的字符串格式化方式 2. 内建format函数与str.format方法 3. f-字符串 总结: 在微信公众号「极客起源」中输入595586,可学习全部的<Python高效 ...

  8. Python网络编程之二:网络编程基础

    Python网络编程之二:网络编程基础 一.基础概念 1.两个地址 1.1.mac地址 mac地址:直译为媒体存取控制位址,也称为局域网地址.MAC位址.以太网地址或物理地址,它是一个用来确认网络设备 ...

  9. Python网络编程之day01-网络编程基础

    Python网络编程之day01-网络编程基础 文章目录 Python网络编程之day01-网络编程基础 一.网络通信概述 二.IP地址 三.ping,ifconfig,ipconfig 四.端口 代 ...

  10. 听学编程之python_听学编程之Python 三、宝玉在红楼梦里说了什么

    应听友要求,根据喜马拉雅上的音频节目『听学编程之Python』整理所得. 除了数值外,Python处理字符串特别方便,甚至在编程界,也算是最方便的类型.要掌握哪些入门知识呢?字符串 unicode 列 ...

最新文章

  1. 原型模式(Prototype)
  2. zabbix监控利用Python脚本发邮件
  3. CentOS进不了系统
  4. 网页解析之BeautifulSoup
  5. 【数据结构与算法】之树的概念与使用
  6. linux 中如何查看块设备,在linux中,如何确定使用块设备的进程?
  7. 昨天又发火了:领导拒不给他人安排工作
  8. 将自己开发的vue组件库发布到npm
  9. word转换成pdf后图片压缩失真的解决方法
  10. minecraft图标文件_如何在任何操作系统上查找Minecraft保存的游戏文件夹
  11. 仪用放大电路+lm324三级放大+滤波
  12. 扫描二维码进入小程序超详细过程
  13. BZOJ 1002 1003 1007 被屠记录
  14. 锚框之间的IOU理解
  15. 基于Android的微信主界面
  16. 开放世界游戏中的大地图的实现——内容制作篇
  17. Python基础嘚吧嘚
  18. Math.Round函数
  19. Linux学习日记1——Ubuntu
  20. XP与Win2003下网站配置

热门文章

  1. NO.3 寻找数组主要元素
  2. MongoDB的入门使用
  3. Linux基础命令---vmstat显示虚拟内存状态
  4. lesson 040 —— 面向对象简介
  5. SpringBoot以jar包部署需要注意的thymeleaf页面映射问题
  6. 51 nod 最长公共子序列问题(打印路径)
  7. MVC模式在Java Web应用程序中的实现
  8. 实现multbandblend
  9. 006--C++动态内存(简介)
  10. iis7部署WCF服务应用程序