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求解平方根的方法
Mar 11 Python
Python遍历目录的4种方法实例介绍
Apr 13 Python
python虚拟环境virualenv的安装与使用
Dec 18 Python
windows下Virtualenvwrapper安装教程
Dec 13 Python
python3+PyQt5实现柱状图
Apr 24 Python
Python之inspect模块实现获取加载模块路径的方法
Oct 16 Python
对pandas中两种数据类型Series和DataFrame的区别详解
Nov 12 Python
Python实现的大数据分析操作系统日志功能示例
Feb 11 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
Apr 29 Python
py-charm延长试用期限实例
Dec 22 Python
python 如何区分return和yield
Sep 22 Python
Django缓存Cache使用详解
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
改进的IP计数器
2006/10/09 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
2016/07/21 PHP
PHP 等比例缩放图片详解及实例代码
2016/09/18 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
基于jQuery的星级评分插件
2011/08/12 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
js有序数组的连接问题
2013/10/01 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
百度搜索框智能提示案例jsonp
2016/11/28 Javascript
AngularJS实现表单验证功能
2017/01/09 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
Vue-resource实现ajax请求和跨域请求示例
2017/02/23 Javascript
JavaScript代码执行的先后顺序问题
2017/10/29 Javascript
vue slot 在子组件中显示父组件传递的模板
2018/03/02 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
微信小程序开发摇一摇功能
2019/11/22 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
[24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
2018/06/03 DOTA
Pythont特殊语法filter,map,reduce,apply使用方法
2016/02/27 Python
Python如何实现转换URL详解
2019/07/02 Python
简单了解Python3里的一些新特性
2019/07/13 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
记录一下scrapy中settings的一些配置小结
2020/09/28 Python
python中re模块知识点总结
2021/01/17 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
元旦晚会上单位领导演讲稿
2014/01/05 职场文书
股东合作协议书范本
2014/04/14 职场文书
用Python可视化新冠疫情数据
2022/01/18 Python
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL