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中bisect的用法
Sep 23 Python
Python实现的科学计算器功能示例
Aug 04 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
Anaconda入门使用总结
Apr 05 Python
python使用socket创建tcp服务器和客户端
Apr 12 Python
在Pandas中给多层索引降级的方法
Nov 16 Python
用python打印菱形的实操方法和代码
Jun 25 Python
如何在python中写hive脚本
Nov 08 Python
python scrapy重复执行实现代码详解
Dec 28 Python
快速解决jupyter启动卡死的问题
Apr 10 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
Jul 20 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 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 各种应用乱码问题的解决方法
2010/05/09 PHP
table标签的结构与合并单元格的实现方法
2013/07/24 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
表单内同名元素的控制
2006/11/22 Javascript
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
jquery checkbox实现单选小例
2013/11/27 Javascript
纯js写的分页表格数据为json串
2014/02/18 Javascript
jQuery EasyUI Dialog拖不下来如何解决
2015/09/28 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
AngularJS实现表格的增删改查(仅限前端)
2017/07/04 Javascript
详解vue中点击空白处隐藏div的实现(用指令实现)
2018/04/19 Javascript
JavaScript执行环境及作用域链实例分析
2018/08/01 Javascript
vue实现微信分享功能
2018/11/28 Javascript
JS表格的动态操作完整示例
2020/01/13 Javascript
详解 javascript对象创建模式
2020/10/30 Javascript
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
python使用多线程+socket实现端口扫描
2020/05/28 Python
python相对企业语言优势在哪
2020/06/12 Python
Python包和模块的分发详细介绍
2020/06/19 Python
python3实现名片管理系统(控制台版)
2020/11/29 Python
连卡佛中国官网:Lane Crawford中文站
2018/01/27 全球购物
优秀中专生推荐信
2013/11/17 职场文书
门卫工作岗位职责
2013/12/17 职场文书
军训自我鉴定200字
2014/02/13 职场文书
《罗布泊,消逝的仙湖》教学反思
2014/03/01 职场文书
制药工程专业职业生涯规划范文
2014/03/10 职场文书
元宵晚会主持词
2014/03/25 职场文书
某某同志考察材料
2014/05/28 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
春晚观后感
2015/06/11 职场文书
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python
JavaScript架构搭建前端监控如何采集异常数据
2022/06/25 Javascript