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

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))

来源:https://www.cnblogs.com/be-saber/p/4771176.html

标签:python,退出程序
0
投稿

猜你喜欢

  • IE8网页显示不正常 用”兼容性视图”搞定

    2009-03-28 11:13:00
  • js实现千分符和保留几位小数的简单实例

    2023-08-21 10:03:26
  • Python中try excpet BaseException(异常处理捕获)的使用

    2023-07-30 16:21:37
  • JS数组方法汇总

    2009-08-03 14:06:00
  • 详解MySQL数据库之更新语句

    2010-08-08 09:15:00
  • php中Array2xml类实现数组转化成XML实例

    2023-07-14 21:48:13
  • 自适应网页设计(Responsive Web Design)

    2012-05-02 10:49:07
  • 用CSS定义 li 样式

    2007-09-28 20:56:00
  • 在ASP中用FormatDateTime格式化日期

    2010-08-08 19:16:00
  • Python 中制作偶数列表的方法

    2022-08-20 20:15:56
  • php防止SQL注入详解及防范

    2023-07-22 19:25:53
  • php 多继承的几种常见实现方法示例

    2023-11-22 19:03:19
  • JS删除数组里的某个元素方法

    2023-07-14 22:45:47
  • Python学习之面向对象编程详解

    2023-10-12 18:48:46
  • 如何在Access 2007数据库中添加附件

    2008-11-21 12:32:00
  • 微软补丁KB967723造成MySQL频繁无法连接

    2009-11-03 14:28:00
  • python网络爬虫精解之pyquery的使用说明

    2021-05-28 13:01:19
  • 获取星期几的名称

    2012-01-29 18:16:31
  • N年前的JAVASCRIPT笔记

    2009-01-07 12:40:00
  • Python中的并发编程asyncio库入门使用

    2021-02-13 05:03:52
  • asp之家 网络编程 m.aspxhome.com