📌  相关文章
📜  如何在Python中终止 Windows 上正在运行的进程?(1)

📅  最后修改于: 2023-12-03 14:52:51.055000             🧑  作者: Mango

如何在Python中终止 Windows 上正在运行的进程?

Python 是一种高级编程语言,可用于开发各种应用程序。在 Windows 上运行的 Python 程序可能会创建进程。在某些情况下,您可能需要在运行的 Python 程序中终止其他进程。本文将介绍如何在 Python 中终止 Windows 上正在运行的进程。

1. 获取进程 ID

要终止进程,您需要首先获取该进程的 ID。您可以使用 psutil 模块来获取正在运行的进程列表和详细信息。您可以使用以下代码获取正在运行的所有进程的名称和 ID:

import psutil
for proc in psutil.process_iter(['pid', 'name']):
    print(proc.info)

输出将类似于以下内容:

{'name': 'System Idle Process', 'pid': 0}
{'name': 'System', 'pid': 4}
{'name': 'Registry', 'pid': 88}
{'name': 'smss.exe', 'pid': 432}
{'name': 'csrss.exe', 'pid': 544}
{'name': 'wininit.exe', 'pid': 584}
...
2. 终止进程

使用 os 模块,您可以终止进程。以下是例子代码:

import os
os.system('taskkill /f /im process_name.exe')

其中,process_name.exe 是要终止的进程名。参数 /f 表示强制终止进程,如果进程没有响应,将无法正常终止。参数 /im 表示使用进程映像名称,而不是进程 ID。

您还可以使用 subprocess 模块来运行任务,该模块提供了更多的灵活性和安全性。

import subprocess
subprocess.call(["taskkill","/F","/IM","process_name.exe"])
3. 完整代码

下面是一些示例代码,它可以在 Python 中终止 Windows 上的进程:

import psutil
import subprocess

def terminate_process(process_name):
    for proc in psutil.process_iter(['pid', 'name']):
        if proc.info['name'] == process_name:
            subprocess.call(["taskkill","/F","/IM",process_name])
            return True
    return False

terminated = terminate_process("process_name.exe")
if terminated:
    print("进程已成功终止")
else:
    print("未找到该进程")

此代码示例使用 psutil 模块获取正在运行的进程列表,并使用 subprocess 模块终止指定的进程。

4. 总结

终止 Windows 上运行的进程可能是必需的,特别是在管理大型应用程序和系统时。使用 Python 可以轻松地检测和终止正在运行的进程。psutilsubprocess 模块提供了强大的工具来完成这项任务。