2021-05-19

python获取指定进程的平均CPU占用率,内存占用率

import psutil
import time
import re, sys


def processinfo(x):
    p = psutil.process_iter()
    tlp = 0
    try:
        for r in p:
            aa = str(r)
            f = re.compile(x, re.I)
            if f.search(aa):
                tlp = int(aa.split('pid=')[1].split(',')[0]) 
                # 检索pid列表并获取传入值的pid
                return tlp
    except (psutil.NoSuchProcess):
            print('Ransomware process is caught, but the process does '
                  'not exist (PID: %d)' % aa.pid)


def getinfo(tlp):
    p = psutil.Process(tlp)
    cpu_list = []
    for i in range(10):
        p_cpu = p.cpu_percent(interval=0.1)
        cpu_list.append(p_cpu)
        cpu = 0.00
        cpu = float(sum(cpu_list))/len(cpu_list)/10
        # 循环10次cpu使用值并取平均值
    try:
        pid = p.pid
        name = p.name()
        Memory = p.memory_percent(memtype="rss") / 2
        localtime = time.strftime('%H:%M:%S', time.localtime(time.time()))
        # 取进程pid 进程名 进程内存
    except IOError as e:
        print(e)
    else:
        # return pid, name, Memory, cpu, time
        print("Time:%s" % (localtime), "PID:%s" % (pid), "Name:%s" % (name),
              "Memory=%.3f%%" % (Memory), "CPU=%.2f%%" % (cpu * 2))


if __name__ == "__main__":
    while 0 < 1:
        s = processinfo('uibot.exe')
        getinfo(s)
        if False:
            print("打开程序")
        else:
            continue
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值