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中的descriptor描述器简明使用指南
Jun 02 Python
Python选课系统开发程序
Sep 02 Python
python指定写入文件时的编码格式方法
Jun 07 Python
python跳过第一行快速读取文件内容的实例
Jul 12 Python
python tkinter canvas 显示图片的示例
Jun 13 Python
python装饰器原理与用法深入详解
Dec 19 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
Jan 14 Python
pycharm中import呈现灰色原因的解决方法
Mar 04 Python
Python获取android设备cpu和内存占用情况
Nov 15 Python
Django中template for如何使用方法
Jan 31 Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
Jun 07 Python
浅谈Python协程asyncio
Jun 20 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
动易数据转成dedecms的php程序
2007/04/07 PHP
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
2016/12/12 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
Angular4自制一个市县二级联动组件示例
2017/11/21 Javascript
vue动态路由配置及路由传参的方式
2018/05/23 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
JavaScript内置对象之Array的使用小结
2020/05/12 Javascript
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
python实现代码行数统计示例分享
2014/02/10 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
2015/10/13 Python
Python数据类型学习笔记
2016/01/13 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
如何基于python生成list的所有的子集
2019/11/11 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
2020/09/28 Python
Spartoo西班牙官网:法国时尚购物网站
2018/03/27 全球购物
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
一些PHP的面试题
2015/05/06 面试题
某个公司的Java笔面试题
2016/03/11 面试题
教师校本培训方案
2014/02/26 职场文书
消防安全宣传标语
2014/06/07 职场文书
个人买房协议书范本
2014/10/06 职场文书
出差报告范文
2014/11/06 职场文书
单位接收函范文
2015/01/30 职场文书
小学安全工作总结2015
2015/05/18 职场文书
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS
nginx代理实现静态资源访问的示例代码
2022/07/07 Servers