在Windows中使用Python结束进程

总是有些无用进程会在后台持续运行, 消耗着宝贵的系统资源, 拖慢其他真正重要任务的运行. 虽然彻底卸载掉这些软件会一劳永逸地解决问题, 但是由于偶尔仍会需要用到这些软件, 这不是一个好办法. 我们可以在任务管理器里面手动结束这些进程, 也可以用Python脚本达到同样的目的, 而且更加灵活, 节省更多时间.

当你需要和WIN32 API打交道, 那么Python是个不错的选择, Python提供了相当多的和Windows进程处理有关的选项.

psutil 提供了一个抽象接口来表示进程相关的API. 这是一个跨平台的库, 让你可以查询进程和系统的运行状态信息, 例如CPU, 内存使用, 磁盘使用, 网络连接等等. 对于系统监控和管理, 这是一个很棒的工具. 他实现的功能类似于Linux下的命令行工具例如 ps, top, lsof, netstat, ifconfig, who, df, kill, free, nice, ionice, iostat, iotop, uptime, pidof, tty, taskset, pmap等等. 而且它非常容易使用.

 
import psutil
 
for proc in psutil.process_iter():
    print(proc.name())
 
def kill_by_process_name(name):
    for proc in psutil.process_iter():
        if proc.name() == name:
            print("Killing process: " + name)
            if(check_process_exist_by_name(name)):
                print("Killing process: " + name + " sucess")
            else:
                print("Killing process: " + name + " failed")
            return
 
    print("Not found process: " + name)
 
def check_process_exist_by_name(name):
    for proc in psutil.process_iter():
        if proc.name() == name:
            return True
 
    return False
 
kill_by_process_name("iTunesHelper.exe")   
 

安装psutil之前请先检查你的系统平台, 比如你使用的是64位Windows和Python 3.4.3版, 你可以从这里下载psutil-5.4.3-cp34-cp34m-win_amd64.whl (md5). 安装命令如下:

 
>python
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600
Type "help", "copyright", "credits" or "license" for more information
>>> import platform
>>> platform.architecture()
('64bit', 'WindowsPE')
>>> ^Z
 
 
>pip install psutil-5.4.3-cp34-cp34m-win_amd64.whl
Processing c:\bin\psutil-5.4.3-cp34-cp34m-win_amd64.whl
Installing collected packages: psutil
Successfully installed psutil-5.4.3

另外你也可以从Python调用Windows的shell命令, 就如同在cmd窗口中执行命令一样

 
import os
 
def kill_by_process_name_shell(name):
    os.system("taskkill /f /im " + name)
 
kill_by_process_name_shell("iTunesHelper.exe")