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中处理日期和时间的基本知识点整理汇总
May 22 Python
简单解决Python文件中文编码问题
Nov 22 Python
python输入错误密码用户锁定实现方法
Nov 27 Python
python得到一个excel的全部sheet标签值方法
Dec 10 Python
Python实现的文轩网爬虫完整示例
May 16 Python
python turtle库画一个方格和圆实例
Jun 27 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
Aug 08 Python
python爬虫---requests库的用法详解
Sep 28 Python
Django基于Models定制Admin后台实现过程解析
Nov 11 Python
利用python 下载bilibili视频
Nov 13 Python
python中用ggplot绘制画图实例讲解
Jan 26 Python
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
Apr 14 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转换IP地址到真实地址的方法详解
2013/06/09 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
2015/02/15 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
2009/08/04 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
bootstrap fileinput完整实例分享
2016/11/08 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
jQuery查找dom的几种方法效率详解
2017/05/17 jQuery
vue引入jq插件的实例讲解
2017/09/12 Javascript
JavaScript代码执行的先后顺序问题
2017/10/29 Javascript
node vue项目开发之前后端分离实战记录
2017/12/13 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
vue2.0自定义指令示例代码详解
2019/04/25 Javascript
Element ui 下拉多选时新增一个选择所有的选项
2019/08/21 Javascript
微信小程序个人中心的列表控件实现代码
2020/04/26 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
Python实现PS图像抽象画风效果的方法
2018/01/23 Python
CentOS7下python3.7.0安装教程
2018/07/30 Python
django Serializer序列化使用方法详解
2018/10/16 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
深入浅析python 中的self和cls的区别
2020/06/20 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
Original Penguin美国官网:布拉德皮特、强尼德普喜爱的服装品牌
2016/10/25 全球购物
英国玛莎百货澳大利亚:Marks & Spencer Australia
2019/08/30 全球购物
高中军训感言500字
2014/02/24 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python
springcloud之Feign超时问题的解决
2021/06/24 Java/Android
使用Docker容器部署rocketmq单机的全过程
2022/04/03 Servers