如何通过python使用psutil获得cpu持久性

如何通过python使用psutil获得cpu持久性,python,psutil,Python,Psutil,我想得到整个进程的cpu_%,所以我使用了下面的代码,但它始终返回0.0的值 listOfProcessNames = list() for proc in psutil.process_iter(): pInfoDict = proc.as_dict(attrs=['username', 'pid', 'name', 'cpu_percent', 'memory_percent']) listOfProcessNames.append(pInfoDict

我想得到整个进程的cpu_%,所以我使用了下面的代码,但它始终返回0.0的值

listOfProcessNames = list()
    for proc in psutil.process_iter():
        pInfoDict = proc.as_dict(attrs=['username', 'pid', 'name', 'cpu_percent', 'memory_percent'])
        listOfProcessNames.append(pInfoDict)
    listOfProcessNames = sorted(listOfProcessNames, key=lambda procObj: procObj['cpu_percent'], reverse=True)
for elem in listOfProcessNames[:20] :
    print(elem)
因此,我添加了下面的代码以获得cpu percent,但这太慢了,还有其他方法吗

current_process = psutil.Process(pid=pInfoDict['pid'])

pInfoDict["cpu_percent"] = current_process.cpu_percent(interval=0.1)

您是在尝试获取某个进程的CPU使用率,还是所有进程的CPU使用率?获取所有进程的CPU使用率百分比,并尝试按高的顺序仅排序20usage@kimGT:
current\u process=psutil.process(
:这是双重工作,您已经在
proc
中准备好了对当前流程的引用。docu声明“大大加快了检索速度”使用感谢您的回答我尝试使用psutil.oneshot()cpu.percent来获取特定的进程ID,但它始终打印0.0“始终返回
0.0
”:阅读。要获得合理的值,您必须在一定时间间隔内至少调用两次。