Python程序退出方式(sys.exit() os._exit() os.kill() os.popen(...))

对于如何结束一个Python程序或者用Python操做去结束一个进程等,Python自己给出了好几种方法,而这些方式也存在着一些区别,对相关的几种方法看了并实践了下,同时也记录下。linux

参考:编程

Python 核心编程(第二版)函数

http://www.zhihu.com/question/21187839code

 

1. sys.exit()视频

执行该语句会直接退出程序,这也是常常使用的方法,也不须要考虑平台等因素的影响,通常是退出Python程序的首选方法。blog

该方法中包含一个参数status,默认为0,表示正常退出,也能够为1,表示异常退出。进程

1 import sys
2 sys.exit()
3 sys.exit(0)
4 sys.exit(1)

该方法引起的是一个SystemExit异常(这是惟一一个不会被认为是错误的异常),当没有设置捕获这个异常将会直接退出程序执行,固然也能够捕获这个异常进行一些其余操做。get

 

2. os._exit()it

效果也是直接退出,不会抛出异常,可是其使用会受到平台的限制,但咱们经常使用的Win32平台和基于UNIX的平台不会有所影响。io

知乎上有说是调用了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代码是:

1 import os
2 if __name__ == "__main__":
3     pid = 620
4     os.popen('taskkill.exe /pid:'+str(pid))
相关文章
相关标签/搜索