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实现windows下的抓包与解析
Jan 15 Python
详解从Django Rest Framework响应中删除空字段
Jan 11 Python
20行python代码的入门级小游戏的详解
May 05 Python
python字符串替换re.sub()方法解析
Sep 18 Python
Python实现图片批量加入水印代码实例
Nov 30 Python
python 循环数据赋值实例
Dec 02 Python
Python自带的IDE在哪里
Jul 01 Python
浅谈django不使用restframework自定义接口与使用的区别
Jul 15 Python
anaconda3安装及jupyter环境配置全教程
Aug 24 Python
Python3爬虫RedisDump的安装步骤
Feb 20 Python
python定义具名元组实例操作
Feb 28 Python
Python爬虫进阶之Beautiful Soup库详解
Apr 29 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
解决MySQL中文输出变成问号的问题
2008/06/05 PHP
phpmyadmin导入(import)文件限制的解决办法
2009/12/11 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
PHP读取XML格式文件的方法总结
2017/02/27 PHP
jQuery ui1.7 dialog只能弹出一次问题
2009/08/27 Javascript
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
javascript函数中的arguments参数
2010/08/01 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
JavaScript 继承详解(五)
2016/10/11 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
vue子传父关于.sync与$emit的实现
2019/11/05 Javascript
JavaScript常用进制转换及位运算实例解析
2020/10/14 Javascript
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
Python 元组(Tuple)操作详解
2014/03/11 Python
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
python2.7 mayavi 安装图文教程(推荐)
2017/06/22 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
分享给Python新手们的几道简单练习题
2017/09/21 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)
2013/06/06 HTML / CSS
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
专业求职信撰写要诀
2014/02/18 职场文书
一句话工作感言
2014/03/01 职场文书
婚礼主持词
2014/03/13 职场文书
敬老模范事迹
2014/05/21 职场文书
2016教师国培研修感言
2015/12/08 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书
Python序列化模块JSON与Pickle
2022/06/05 Python