Get CPU load in python on Raspberry Pi doesn't work

4.7k Views Asked by At

I have googled for code to get the CPU load on RPi3. I found this code:

import os

def getCPUuse():
    return str(os.popen("top -n1 | awk '/Cpu\(s\):/ {print $2}'").readline().strip())

For me it only returns an empty string.

Where is the problem in this code?

EDIT:

I call it like this:

while True:
    time.sleep(0.2)
    use = getCPUuse()
    print(use)
2

There are 2 best solutions below

1
On BEST ANSWER

Take off the strip() and just do readline. That worked for me.

0
On

You can use the gpiozero module - it comes pre-installed with Raspberry Pi OS. So you can use this code, it is a bit easier to read too (in my opinion):

from gpiozero import LoadAverage

print(str(int(LoadAverage(minutes=1).load_average*100))+"%")

EDIT: This link may help: https://gpiozero.readthedocs.io/en/stable/api_internal.html#loadaverage