对于如何结束一个 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的平台不会受到影响。
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 实际上是用来杀死进程的。它的基本形式是,
taskkill/pid程序的PID号码
可以直接在CMD窗口下试下这个命令。
可以先打开一个计算器程序,然后用tasklist查看程序的pid,这里是620,所以对应的Python代码是:
import os
if __name__ == "__main__":
pid = 620
os.popen('taskkill.exe /pid:'+str(pid))
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python中的Git分支操作10/06
- ♥ 如何进入python交互模式09/03
- ♥ 如何在python3中转换utf-8编码?12/07
- ♥ 如何在python中定义一个不定长的二维数组?10/06
- ♥ python中如何识别判断是否为小数?09/09
- ♥ 如何在python中换行09/21
内容反馈