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实现多线程采集的2个代码例子
Jul 07 Python
Python用UUID库生成唯一ID的方法示例
Dec 15 Python
Python操作Excel之xlsx文件
Mar 24 Python
python模块之time模块(实例讲解)
Sep 13 Python
浅谈Python peewee 使用经验
Oct 20 Python
酷! 程序员用Python带你玩转冲顶大会
Jan 17 Python
python 多线程中子线程和主线程相互通信方法
Nov 09 Python
利用Python库Scapy解析pcap文件的方法
Jul 23 Python
Python3.7下安装pyqt5的方法步骤(图文)
May 12 Python
python 实现弹球游戏的示例代码
Nov 17 Python
详解Python小数据池和代码块缓存机制
Apr 07 Python
python如何获取网络数据
Apr 11 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
PHP操作xml代码
2010/06/17 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
PHP数组无限分级数据的层级化处理代码
2012/12/29 PHP
php导入大量数据到mysql性能优化技巧
2014/12/29 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
Laravel如何创建服务器提供者实例代码
2019/04/15 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
2020/05/14 PHP
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
javascript与有限状态机详解
2014/05/08 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
2016/10/24 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
原生js实现简单的链式操作
2017/07/04 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
Python实现Linux下守护进程的编写方法
2014/08/22 Python
python多线程用法实例详解
2015/01/15 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
Python+OpenCV感兴趣区域ROI提取方法
2019/01/10 Python
使用django实现一个代码发布系统
2019/07/18 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
Python开发之基于模板匹配的信用卡数字识别功能
2020/01/13 Python
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
美国指甲油品牌:Deco Miami
2017/01/30 全球购物
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
Python中pass语句的作用是什么
2016/06/01 面试题
如何做好总经理助理
2013/11/12 职场文书
学校元旦晚会方案
2014/02/19 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
nginx 多个location转发任意请求或访问静态资源文件的实现
2021/03/31 Servers
「Manga Time Kirara MAX」2022年5月号封面公开
2022/03/21 日漫