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打包可执行文件的方法详解
Sep 19 Python
python实现二叉查找树实例代码
Feb 08 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
Jul 11 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
Mar 26 Python
Django框架登录加上验证码校验实现验证功能示例
May 23 Python
pandas read_excel()和to_excel()函数解析
Sep 19 Python
Django视图扩展类知识点详解
Oct 25 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
Dec 25 Python
python实现FTP循环上传文件
Mar 20 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
Pycharm安装第三方库失败解决方案
Nov 17 Python
python压包的概念及实例详解
Feb 17 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学习资料汇总与网址
2007/03/16 PHP
php 移除数组重复元素的一点说明
2008/11/27 PHP
php使用MySQL保存session会话的方法
2015/06/18 PHP
解决在laravel中auth建立时候遇到的问题
2019/10/15 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
2012/06/22 Javascript
JS中自定义定时器让它在某一时刻执行
2014/09/02 Javascript
jquery ui bootstrap 实现自定义风格
2014/11/14 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
全面解析Bootstrap中nav、collapse的使用方法
2016/05/22 Javascript
AngularJS基础 ng-options 指令详解
2016/08/02 Javascript
jquery实现图片切换代码
2016/10/13 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
JS实现简单表格排序操作示例
2017/10/07 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
Python 字符串操作实现代码(截取/替换/查找/分割)
2013/06/08 Python
Python中给List添加元素的4种方法分享
2014/11/28 Python
python中os操作文件及文件路径实例汇总
2015/01/15 Python
Python脚本在Appium库上对移动应用实现自动化测试
2015/04/17 Python
Python中生成Epoch的方法
2017/04/26 Python
使用python编写udp协议的ping程序方法
2018/04/22 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
python相对企业语言优势在哪
2020/06/12 Python
商场圣诞节活动总结
2015/05/06 职场文书
小学生安全教育主题班会
2015/08/12 职场文书
CSS 实现Chrome标签栏的技巧
2021/08/04 HTML / CSS
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL