38 lines
983 B
Python
38 lines
983 B
Python
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())
|