📜  如何在Python制作进程监视器?(1)

📅  最后修改于: 2023-12-03 15:38:37.341000             🧑  作者: Mango

如何在Python制作进程监视器?

在实际开发中,我们经常需要监视和管理运行中的进程。Python是一种功能强大的编程语言,也提供了多种方法来实现进程监视器。

在制作进程监视器时,我们需要以下步骤:

  1. 获取计算机上运行的所有进程信息。
  2. 根据进程名称或ID获取具体进程信息。
  3. 杀掉指定的进程。

接下来,我们将一步步介绍如何在Python中实现这些功能。

获取计算机上运行的所有进程信息

我们可以使用Python内置的psutil模块来获取计算机上运行的所有进程信息。以下是示例代码:

import psutil

# 获取所有运行的进程
processes = []

for proc in psutil.process_iter():
    try:
        pinfo = proc.as_dict(attrs=['pid', 'name', 'username'])
    except psutil.NoSuchProcess:
        pass
    else:
        processes.append(pinfo)

# 打印进程信息
for process in processes:
    print(process)

代码中,我们首先导入了psutil模块,然后使用psutil.process_iter()函数来获取所有运行的进程。接着,我们使用循环遍历并获取每个进程的PID、名称和用户名信息,并将其存储到列表中。最后,我们使用print()函数打印所有进程的详细信息。

根据进程名称或ID获取具体进程信息

如果我们需要根据进程名称或ID获取具体的进程信息,可以使用psutil模块提供的相关函数。以下是示例代码:

import psutil

# 根据进程名称获取进程信息
def get_process_by_name(name):
    for proc in psutil.process_iter():
        try:
            pinfo = proc.as_dict(attrs=['pid', 'name'])
        except psutil.NoSuchProcess:
            pass
        else:
            if pinfo['name'] == name:
                return pinfo
    return None

# 根据进程ID获取进程信息
def get_process_by_id(pid):
    try:
        p = psutil.Process(pid=pid)
    except psutil.NoSuchProcess:
        return None
    else:
        return {'pid': p.pid, 'name': p.name()}

# 测试函数
print(get_process_by_name('python'))
print(get_process_by_id(1234))

代码中,我们定义了两个函数get_process_by_name()get_process_by_id(),用于根据进程名称和ID获取具体进程信息。在get_process_by_name()函数中,我们使用psutil.process_iter()函数遍历所有进程,根据进程名称进行匹配,找到满足条件的进程即返回。在get_process_by_id()函数中,我们使用psutil.Process(pid=pid)函数根据进程ID获取指定进程对象,然后获取该进程的PID和名称。最后,我们通过调用这两个函数进行测试,并使用print()函数打印获取到的进程信息。

杀掉指定的进程

如果我们需要杀掉指定的进程,可以使用psutil模块提供的相应函数。以下是示例代码:

import psutil

# 杀掉指定进程
def kill_process(pid):
    try:
        p = psutil.Process(pid=pid)
        p.terminate()
    except psutil.NoSuchProcess:
        pass

# 测试函数
kill_process(1234)

代码中,我们定义了一个kill_process()函数,用于杀掉指定的进程。在函数中,我们使用psutil.Process(pid=pid)函数获取到指定进程对象,然后调用其terminate()方法来终止进程的运行。如果指定的进程不存在,程序将不做任何操作。最后,我们通过调用函数并传入进程ID进行测试。

总结

通过以上介绍,我们学习了如何在Python中制作进程监视器,包括获取计算机上运行的所有进程信息、根据进程名称或ID获取具体进程信息和杀掉指定的进程。这些技巧对于实际开发中的进程管理和监视十分有用。