import subprocess import json def getFrequency(): result = subprocess.run(['cat', '/proc/cpuinfo'], stdout=subprocess.PIPE) result = result.stdout.decode('utf-8').split("\n") freq = {} index = 0 for line in result: if "cpu MHz" in line: line = line.split(":") freq[str(index)] = float(line[-1]) index += 1 return freq def getCpuInfo(): result = subprocess.run(['lscpu', '-J'], stdout=subprocess.PIPE) result = json.loads(result.stdout.decode('utf-8')) cpuinfo = {} for item in result["lscpu"]: if 'Vendor ID' in item['field']: cpuinfo["vendor"] = item["data"] if 'Model name' in item['field']: cpuinfo["model"] = item["data"] if item['field'] == 'CPU(s):': cpuinfo["cpus"] = item["data"] cpuinfo["frequency"] = getFrequency() return cpuinfo if __name__ == "__main__": # print(getFrequency()) print(getCpuInfo())