Python程序退出方式小结


Posted in Python onDecember 09, 2017

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

参考:

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

1. sys.exit()

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

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

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

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

2. os._exit()

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

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

3. os.kill()

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

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

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

SIGINT 终止进程 中断进程

SIGTERM 终止进程 软件终止信号

SIGKILL 终止进程 杀死进程

SIGALRM 闹钟信号

例:

在linux平台上打开VLC视频播放器,然后查看运行的进程:进程号是 4497

Python程序退出方式小结

然后执行os.kill操作:

Python程序退出方式小结

执行完之后可以发现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 相关文章推荐
Python中的测试模块unittest和doctest的使用教程
Apr 14 Python
九步学会Python装饰器
May 09 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
Jun 13 Python
python tkinter之 复选、文本、下拉的实现
Mar 04 Python
python实现最速下降法
Mar 24 Python
jupyter notebook参数化运行python方式
Apr 10 Python
Python unittest框架操作实例解析
Apr 13 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 Python
Python如何使用vars返回对象的属性列表
Oct 17 Python
python如何编写类似nmap的扫描工具
Nov 06 Python
python 下载文件的多种方法汇总
Nov 17 Python
变长双向rnn的正确使用姿势教学
May 31 Python
Python实战小程序利用matplotlib模块画图代码分享
Dec 09 #Python
Python爬取附近餐馆信息代码示例
Dec 09 #Python
Python的地形三维可视化Matplotlib和gdal使用实例
Dec 09 #Python
python登录并爬取淘宝信息代码示例
Dec 09 #Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 #Python
Python排序搜索基本算法之选择排序实例分析
Dec 09 #Python
Python排序搜索基本算法之冒泡排序实例分析
Dec 09 #Python
You might like
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
javascript 函数参数限制说明
2010/11/19 Javascript
jquery构造器的实现代码小结
2011/05/16 Javascript
js window.print实现打印特定控件或内容
2013/09/16 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
JS模拟实现Select效果代码
2015/09/24 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
完美解决js传递参数中加号和&号自动改变的方法
2016/10/11 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
React学习之事件绑定的几种方法对比
2017/09/24 Javascript
微信小程序左滑删除功能开发案例详解
2018/11/12 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
vue子传父关于.sync与$emit的实现
2019/11/05 Javascript
python计算文本文件行数的方法
2015/07/06 Python
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
Python跨文件全局变量的实现方法示例
2017/12/10 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
Python生成短uuid的方法实例详解
2018/05/29 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
H5离线存储Manifest原理及使用
2020/04/28 HTML / CSS
英国网上电器商店:Electricshop
2020/03/15 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述
2013/03/30 面试题
劳资员岗位职责
2013/11/11 职场文书
探矿工程师自荐信
2014/01/24 职场文书
考试违纪检讨书
2014/02/02 职场文书
出国英文推荐信
2014/05/10 职场文书
行政专员岗位职责范本
2014/08/26 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
医院病假条范文
2015/08/17 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
话题作文之生命的旋律
2019/12/17 职场文书