Python程序退出方式小结
作者:ct_usl 发布时间:2021-12-21 19:29:55
对于如何结束一个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
然后执行os.kill操作:
执行完之后可以发现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))
来源:https://www.cnblogs.com/be-saber/p/4771176.html


猜你喜欢
- Python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum)。 * 的圣诞节期间,吉多·范罗苏姆为了在阿姆
- jQuery之所以如此流行并被从大公司到个人博客的几乎每个人都广泛使用,是因为它上手和使用相当简单,而且为我们提供了一些人都不知道的相当棒的
- 一张损坏的表的症状通常是查询意外中断并且你能看到例如这些错误:◆ “tbl_name.frm”被锁定不能改变。◆ 不能找到文件“tbl_na
- 本文实例讲述了python使用webbrowser浏览指定url的方法。分享给大家供大家参考。具体如下:这段代码提示用户输入关键词,通过we
- Translate From:stevesouders原文:高性能网站设计:不要使用@import在高性能网站设计的第五章,我简要的提到@i
- python虽然是一门'慢语言',但是也有着比较多的性能检测工具来帮助我们优化程序的运行效率。这里总结了五个比较好的pyth
- 一. SQL2008卸载。1.从控制面板卸载1)点击计算机右下角“开始”,点击“控制面板”2)点击“卸载
- 如果你有一堆 PPT 要做,他们的格式是一样的,只是填充的内容不一样,那你就可以使用 Python 来减轻你的负担。PPT 分为内容和格式,
- 对于使用已经训练好的模型,比如VGG,RESNET等,keras都自带了一个keras.applications.imagenet_util
- 本文实例为大家分享了python自动化生成IOS的图标,供大家参考,具体内容如下每次上架之前都要生成十几个图片感觉无聊麻烦,考虑使用脚本处理
- 本文实例讲述了php+redis实现注册、删除、编辑、分页、登录、关注等功能。分享给大家供大家参考,具体如下:主要界面连接redisredi
- 配置生产环境#setting.py 文件中DEBUG = False # 生产环境# 允许访问的域名,域名前加一个点表示允许访问
- 前言python数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。下面话不多说,来看看详细的介绍吧
- 一、前言相关知识来自《python算法设计与分析》。初级排序算法是指几种较为基础且容易理解的排序算法。初级排序算法包括插入排序、选择排序和冒
- 为什么要建立索引?当在非常大的表中进行查询,如果数据库进行全表遍历的话那么速度是会非常慢的,而我们的索引则可以建立一个b+树的结构,可以自上
- 本篇博客会介绍如何使用python在excel和csv里实现vlookup函数的功能,首先需要简单了解一下python如何操作excel1.
- 一、c++调用Python将Python安装目录下的include和libs文件夹引入到项目中,将libs目录下的python37.lib复
- 前言pymssql模块是用于sql server数据库(一种数据库通用接口标准)的连接。另外pyodbc不仅限于SQL server,还包括
- 修复Access数据库,我们一般使用微软Office 97中带的Access 97对数据库进行修复和整理。Access数据库被损坏分以下几种
- 本文为大家分享了童年掌机游戏,基于pygame实现打砖块的具体代码,供大家参考,具体内容如下项目背景: 小时候有过一个掌机游戏机,里面有俄罗