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使用自定义user-agent抓取网页的方法
Apr 15 Python
详解Python程序与服务器连接的WSGI接口
Apr 29 Python
python版本的读写锁操作方法
Apr 25 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
Apr 28 Python
tensorflow实现简单的卷积网络
May 24 Python
python如何查看微信消息撤回
Nov 27 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
Jul 28 Python
python for循环remove同一个list过程解析
Aug 14 Python
Python列表操作方法详解
Feb 09 Python
python和go语言的区别是什么
Jul 20 Python
python爬取代理ip的示例
Dec 18 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
教你IIS6的PHP最佳配置方法
2006/09/05 PHP
一个更简单的无限级分类菜单代码
2007/01/16 PHP
用来解析.htgroup文件的PHP类
2012/09/05 PHP
php提取字符串中网站url地址的方法
2014/12/03 PHP
php模拟post提交数据的方法
2015/02/12 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
node.js中的http.response.removeHeader方法使用说明
2014/12/14 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
2017/01/22 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
详解JS函数stack size计算方法
2018/06/18 Javascript
微信小程序中进行地图导航功能的实现方法
2018/06/29 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
代码分析vue中如何配置less
2018/09/28 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
Python使用email模块对邮件进行编码和解码的实例教程
2016/07/01 Python
Python中工作日类库Busines Holiday的介绍与使用
2017/07/06 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
Python 学习教程之networkx
2019/04/15 Python
Python shelve模块实现解析
2019/08/28 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
JINS眼镜官方网站:日本最大的眼镜邮购
2016/10/14 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
期末自我鉴定
2014/01/23 职场文书
会计求职信范文
2014/05/24 职场文书
离职保密承诺书
2014/05/28 职场文书
体育比赛口号
2014/06/09 职场文书
夫妻分居协议书范本
2014/11/28 职场文书
离婚答辩状范文
2015/05/22 职场文书