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编程中基本的数学计算使用
Feb 04 Python
python实现可以断点续传和并发的ftp程序
Sep 13 Python
深入浅析ImageMagick命令执行漏洞
Oct 11 Python
Python实现的根据文件名查找数据文件功能示例
May 02 Python
pandas 如何分割字符的实现方法
Jul 29 Python
使用python os模块复制文件到指定文件夹的方法
Aug 22 Python
Python绘制热力图示例
Sep 27 Python
Python aiohttp百万并发极限测试实例分析
Oct 26 Python
python 普通克里金(Kriging)法的实现
Dec 19 Python
学会python自动收发邮件 代替你问候女友
May 20 Python
python下对hsv颜色空间进行量化操作
Jun 04 Python
Python 实现集合Set的示例
Dec 21 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 下载保存文件保存到本地的两种实现方法
2013/08/12 PHP
Zend Framework框架路由机制代码分析
2016/03/22 PHP
java模拟PHP的pack和unpack类
2016/04/13 PHP
PHP用函数嵌入网站访问量计数器
2017/10/27 PHP
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
5 cool javascript apps
2007/03/24 Javascript
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
学习javascript,实现插入排序实现代码
2011/07/31 Javascript
点击隐藏页面左栏或右栏实现js代码
2013/04/01 Javascript
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
js window.print实现打印特定控件或内容
2013/09/16 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
jQuery中extend函数的实现原理详解
2015/02/03 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
js每隔两秒输出数组中的一项(实例)
2017/05/28 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
Vue axios设置访问基础路径方法
2018/09/19 Javascript
微信小程序Echarts覆盖正常组件问题解决
2019/07/13 Javascript
微信小程序实现蓝牙打印
2019/09/23 Javascript
vue-cli在 history模式下的配置详解
2019/11/26 Javascript
python显示天气预报
2014/03/02 Python
浅谈django model postgres的json字段编码问题
2018/01/05 Python
Python贪心算法实例小结
2018/04/22 Python
Python pandas库中的isnull()详解
2019/12/26 Python
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
财务经理的岗位职责
2013/12/17 职场文书
给学校的建议书
2014/03/12 职场文书
妇女干部培训方案
2014/05/12 职场文书
学校募捐倡议书
2014/05/14 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
2014年护士长工作总结
2014/11/11 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书
导游词之崇武古城
2019/10/07 职场文书