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

import osdef 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

Best Answer


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

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 LoadAverageprint(str(int(LoadAverage(minutes=1).load_average*100))+"%")

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