Python实现进程信息获取

废话不多说,直接上代码吧

# coding=utf-8

# 进程检测程序
import psutil
import types
import datetime
    
def get_pid_by_pname(str_proc_name):
    map_proc_info = {}
    for proc in psutil.process_iter():
        if proc.name() == str_proc_name:
            map_proc_info[proc.pid] = str_proc_name
    
    return map_proc_info

def get_proc_running_info(pid):
    proc_info = {}
    proc_info['pid'] = pid

    proc = psutil.Process(pid)
    proc_info['name'] = proc.name()
    proc_info['path'] = proc.exe()
    proc_info['work_dir'] = proc.cwd()
    proc_info['run_time'] = datetime.datetime.fromtimestamp(proc.create_time()).strftime("%Y-%m-%d %H:%M:%S")
    proc_info['cpu_time'] = proc.cpu_times()
    proc_info['mem_usage'] = proc.memory_info()
    proc_info['io_cnter'] = proc.io_counters()
    proc_info['connections'] = proc.connections()
    proc_info['thrd_cnt'] = proc.num_threads()

    return proc_info

下面是程序的主函数,执行入口

# coding=utf-8

import process_info as pi

proc_name = "WeChatStore.exe"
map_pid_name = pi.get_pid_by_pname(proc_name)

if len(map_pid_name) == 0:
    print("can not find process with name ", proc_name)

lst_proc_info = []
for key in map_pid_name:
    lst_proc_info.append(pi.get_proc_running_info(key))

for p in lst_proc_info:
    mem = p["mem_usage"]
    print("rss = {0}KB vms = {1}KB".format(
        mem.rss/1024, mem.vms/1024))
    print("\n")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值