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实现子类调用父类的方法
Nov 10 Python
Python的Django框架中的Context使用
Jul 15 Python
Python获取当前函数名称方法实例分享
Jan 18 Python
浅谈Python实现2种文件复制的方法
Jan 19 Python
python高级特性和高阶函数及使用详解
Oct 17 Python
python如何实现从视频中提取每秒图片
Oct 22 Python
对python中的os.getpid()和os.fork()函数详解
Aug 08 Python
python中property和setter装饰器用法
Dec 19 Python
python opencv 图像边框(填充)添加及图像混合的实现方法(末尾实现类似幻灯片渐变的效果)
Mar 09 Python
Python socket处理client连接过程解析
Mar 18 Python
pandas.DataFrame.drop_duplicates 用法介绍
Jul 06 Python
Python基于Faker假数据构造库
Nov 30 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数据库开发知多少
2006/10/09 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
2017/10/26 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
纯JS实现旋转图片3D展示效果
2015/04/12 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
2017/05/11 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
vuex的使用步骤
2021/01/06 Vue.js
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
Python中文编码那些事
2014/06/25 Python
python下setuptools的安装详解及No module named setuptools的解决方法
2017/07/06 Python
Python使用requests发送POST请求实例代码
2018/01/25 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
2021/01/28 Python
canvas实现烟花的示例代码
2020/01/16 HTML / CSS
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
英文版银行求职信
2013/10/09 职场文书
索桥的故事教学反思
2014/02/06 职场文书
学生期末评语大全
2014/04/30 职场文书
积极向上的团队口号
2014/06/06 职场文书
酒店前台岗位职责
2015/04/16 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
68句权威创业名言
2019/08/26 职场文书
python process模块的使用简介
2021/05/14 Python
MySQL创建管理HASH分区
2022/04/13 MySQL