牛骨文教育服务平台(让学习变的简单)
博文笔记

[Python]psutil模块:用于获得处理器、系统和进程相关信息

创建时间:2015-07-26 投稿人: 浏览次数:1859

模块地址:

https://pypi.python.org/pypi/psutil/

psutil功能

提供接口可以用来获取信息,包括:

  1. 当前运行的进程
  2. 系统(资源使用)信息
    CPU
    内存
    磁盘
    网络
    用户

安装:

windows下安装比较简单,从这里下相应的安装包exe,傻瓜安装即可。psutil区分python2.7和python3.x,所以针对自己的环境下不同的包。

测试

写了一段代码,主要测试进程相关的功能。psutil还有其他很多的功能,这里就不再写测试代码了。

# -*- coding=utf-8 -*-
import psutil

def get_process_cmdline(process_name):
    """
    获取进程的命令行
    :param process_name: 进程名
    :return:返回该进程名(可能有多个)的各进程的参数
    """
    pid_list = psutil.pids()
    for each_pid in pid_list:
        try:
            each_pro = psutil.Process(each_pid)
            if each_pro.name().lower() == process_name.lower():
                yield each_pro.cmdline()
        except psutil.NoSuchProcess, pid:
            print("no process found with pid=%s"%pid)


def kill_process(process_name):
    """
    杀死进程
    :param process_name: 进程名
    :return:None
    """
    pid_list = psutil.pids()
    for each_pid in pid_list:
        try:
            each_pro = psutil.Process(each_pid)
            if each_pro.name().lower() == process_name.lower():
                print("found process")
                print("process_name=%s"%each_pro.name())
                print("process_exe=%s"%each_pro.exe())
                print("process_cwd=%s"%each_pro.cwd())
                print("process_cmdline=%s"%each_pro.cmdline())
                print("process_status=%s"%each_pro.status())
                print("process_username=%s"%each_pro.username())
                print("process_createtime=%s"%each_pro.create_time())
                print("now will kill this process")
                each_pro.terminate()
                each_pro.wait(timeout=3)
                print("psutil.test():
%s"%psutil.test())
        except psutil.NoSuchProcess, pid:
            print("no process found with pid=%s"%pid)

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。