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定时采集摄像头图像上传ftp服务器功能实现
Dec 23 Python
Python远程桌面协议RDPY安装使用介绍
Apr 15 Python
Python实现的数据结构与算法之双端队列详解
Apr 22 Python
Python Django使用forms来实现评论功能
Aug 17 Python
pytorch permute维度转换方法
Dec 14 Python
Python通用循环的构造方法实例分析
Dec 19 Python
Python3.5模块的定义、导入、优化操作图文详解
Apr 27 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
Nov 25 Python
Python json模块与jsonpath模块区别详解
Mar 05 Python
python中导入 train_test_split提示错误的解决
Jun 19 Python
浅析Python迭代器的高级用法
Jul 16 Python
宝塔更新Python及Flask项目的部署
Apr 11 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
自定义PHP分页函数
2006/10/09 PHP
?算你??的 PHP 程式大小
2006/12/06 PHP
PHP删除HTMl标签的三种解决方法
2013/06/30 PHP
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
Yii核心组件AssetManager原理分析
2014/12/02 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
2016/05/26 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
Javascript this 的一些学习总结
2012/08/31 Javascript
javascript实现焦点滚动图效果 具体方法
2013/06/24 Javascript
js分页工具实例
2015/01/28 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
vue.js表格分页示例
2016/10/18 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
ES6新特性八:async函数用法实例详解
2017/04/21 Javascript
Angular4自制一个市县二级联动组件示例
2017/11/21 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
Python字符转换
2008/09/06 Python
python3操作mysql数据库的方法
2017/06/23 Python
关于Python 的简单栅格图像边界提取方法
2019/07/05 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
h5页面唤起app如果没安装就跳转下载(iOS和Android)
2020/06/03 HTML / CSS
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
七一讲话心得体会
2014/09/05 职场文书
2014年医院个人工作总结
2014/12/09 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL
python实现MD5进行文件去重的示例代码
2021/07/09 Python