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

参考:

Python 核心编程(第二版)

1. sys.exit()

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

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

1 import sys

2 sys.exit()

3 sys.exit(0)

4 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代码是:

1 import os

2 if __name__ == "__main__":

3 pid = 620

4 os.popen('taskkill.exe /pid:'+str(pid))

python sys.exit_Python程序退出方式(sys.exit() os._exit() os.kill() os.popen(...))相关推荐

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

    对于如何结束一个Python程序或者用Python操作去结束一个进程等,Python本身给出了好几种方法,而这些方式也存在着一些区别,对相关的几种方法看了并实践了下,同时也记录下. 参考: Pytho ...

  2. python退出程序-Python程序退出方式小结

    对于如何结束一个Python程序或者用Python操作去结束一个进程等,Python本身给出了好几种方法,而这些方式也存在着一些区别,对相关的几种方法看了并实践了下,同时也记录下. 参考: Pytho ...

  3. Python程序退出方式小结(亲测)

    这篇文章主要介绍了Python程序退出方式小结,具有一定参考价值,需要的朋友可以了解下. 对于如何结束一个Python程序或者用Python操作去结束一个进程等,Python本身给出了好几种方法,而这 ...

  4. Python程序退出方式小结

    Python程序退出方式小结 这篇文章主要介绍了Python程序退出方式小结,具有一定参考价值,需要的朋友可以了解下. 对于如何结束一个Python程序或者用Python操作去结束一个进程等,Pyth ...

  5. linux中进程退出函数:exit()和_exit()的区别

    linux中进程退出函数:exit()和_exit()的区别 (1)_exit()执行后立即返回给内核,而exit()要先执行一些清除操作,然后将控制权交给内核. (2)调用_exit函数时,其会关闭 ...

  6. python 直接退出程序_python程序退出方式

    1.sys.exit() 执行该语句会直接退出程序,这也是经常使用的方法,也不需要考虑平台等因素的影响,一般是退出Python程序的首选方法. 该方法中包含一个参数status,默认为0,表示正常退出 ...

  7. python的两种退出方式

    os._exit() vs sys.exit() 转自: http://www.cnblogs.com/gaott/archive/2013/04/12/3016355.html 概述 python的 ...

  8. python发布exe_Python:程序发布方式简介一(打包为可执行文件EXE)

    n 本文介绍如何使用py2exe来将python源程序打包成文件.以上一篇文章[<Python:一个多功能的抓图工具开发(附源码)>](http://blog.csdn.net/dyx10 ...

  9. python的退出方式

    os._exit() vs sys.exit() 转自:http://www.cnblogs.com/gaott/archive/2013/04/12/3016355.html 概述 python的程 ...

最新文章

  1. android的各种*.img 文件
  2. 故障分析--主从复制故障1
  3. boost::lexical_cast模块测试 Source 是否不可复制
  4. ios 获取是否静音模式_果粉感动:部分iOS“新功能”早已被安卓玩坏
  5. HTML5 参数传递
  6. 电脑老是弹出vrvedp_m_出现三个可疑进程vrvedp_m.exe vrvrf_c.exe vrvsafec.exe
  7. 第三四五章(PTA复习)
  8. H5 输入框text和number切换
  9. 如何使用p6spy来监控sql
  10. IOS开发学习笔记027-UITableView 使用模型对象
  11. 全球CT影像20秒诊断,阿里云为新冠AI辅助诊断系统加速 | 凌云时刻
  12. 电阻、电容、电感、半导体器件的失效分析!
  13. Extjs中EditorGridPanel修改并获取数据的两种方式
  14. python中match用法_js中match函数和g用法
  15. Confluence 插入符号和特殊字符
  16. 第16套题目 doc.计算机,计算机二级ms实操题excel难点汇总.doc
  17. 百度关键词排名查询源码_百度移动搜索关键词排名优化
  18. 时间复杂度和空间复杂度复习 (一)
  19. C++之 fgets函数
  20. YZC-810H/20T传感器

热门文章

  1. 3.3. shutdown
  2. eclipse 使用lombok 精简java bean
  3. 使用回调方式写POI导入excel工具类
  4. YUM在园区网络中的应用
  5. Asp.Net 上传大文件
  6. 讲故事,学内存--Oracle
  7. [BZOJ1079][SCOI2008]着色方案 dp
  8. 源代码安装-非ROOT用户安装软件的方法
  9. 求 1~n 之间素数的个数
  10. sql对应C#的类型