Python获取指定服务的cpu占用率?求大神指点,我代码运行不出来

以下是我的两个文件,希望大神或者喜欢尝试的兄弟看看。
test_no1.py
#!/usr/bin/env python
#-*- coding:utf-8 -*-

import ctypes;
import psutil
import test_no2
metaclass = type;

class PROCESSENTRY32(ctypes.Structure):
fields = [
("dwSize",ctypes.c_ulong),
("cntUsage",ctypes.c_ulong),
("th32ProcessID",ctypes.c_ulong),
("th32DefaultHeapID",ctypes.c_void_p),
("th32ModuleID",ctypes.c_ulong),
("cntThreads",ctypes.c_ulong),
("th32ParentProcessID",ctypes.c_ulong),
("pcPriClassBase",ctypes.c_long),
("dwFlags",ctypes.c_ulong),
("szExeFile",ctypes.c_char*260)
]

kernel32 = ctypes.windll.LoadLibrary("kernel32.dll");
pHandle = kernel32.CreateToolhelp32Snapshot(0x2,0x0);

import sys;

if pHandle==-1:
sys.exit();

proc = PROCESSENTRY32();
proc.dwSize = ctypes.sizeof(proc);

while kernel32.Process32Next(pHandle,ctypes.byref(proc)):
ss = ctypes.string_at(proc.szExeFile)
ss=str(ss)
ss=ss.strip("b'")
if ss == "Tra_ser.exe":#获取此服务的cpu占用率
proc_PID = proc.th32ProcessID
print(proc.th32ProcessID)
p = psutil.Process(proc.th32ProcessID)
p.get_cpu_percent(interval=0)
print("####")
print(p.get_cpu_percent(interval=0))#第一次调用
print("####")

kernel32.CloseHandle(pHandle);

#TODO:test_no2的函数接口
test_no2.test(proc_PID)

test_no2.py
import psutil

def test(a):
p1 = psutil.Process(a)
cpu_per = p1.get_cpu_percent(interval=0)#再次调用获取cpu占用率
print("我到达被启动函数,下面打印进程cpu使用率")
print(cpu_per)

1个回答

先看你代码跑到哪里了,是不是有出错。

oyljerry
oyljerry 回复u012595982: 多加一点log输出什么的,先分析一下你获取到的结果。
接近 6 年之前 回复
u012595982
渔樵者 你好,运行没有错误。就是没有得出结果
接近 6 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐