monamona
monamona

Reputation: 1246

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

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)

Upvotes: 2

Views: 4926

Answers (2)

Arca Ege Cengiz
Arca Ege Cengiz

Reputation: 333

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

Upvotes: 1

starke1981
starke1981

Reputation: 26

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

Upvotes: 1

Related Questions