#! /usr/bin/env python import subprocess import sys def f_parse(sens_out): CPUN = 0 firstCPU = True coreN = 0 dimm = "0" ret = {} line_sp = "" for line in sens_out: if "DIMM" in line: line_sp = line.split() dimm = "DIMM" + line_sp[1] + "-" + line_sp[3][0] ret[dimm] = line_sp[4][1:-3] elif "coretemp" in line: if firstCPU: firstCPU = False else: CPUN = CPUN + 1 elif "Core" in line: line_sp = line.split() coreN = "core" + str(CPUN) + "-" + line_sp[1][0] ret[coreN] = line_sp[2][1:-3] return(ret) def f_sensors(): res = subprocess.Popen(['sudo sensors'], stdout=subprocess.PIPE, shell=True) sensors_out = res.stdout.readlines() return(sensors_out) def f_main(): sensors_out = f_sensors() sensors_parsed = f_parse(sensors_out) return(sensors_parsed) def f_json_print(inp): first = True print("{") print("\t\"data\":[") for key in inp: if not first: sys.stdout.write(",") else: first = False sys.stdout.write("\n\t\t{\"{#SENSOR}\":\"" + key + "\"}") print("\n\t]") print("}") if __name__ == '__main__': out = {} out = f_main() if len(sys.argv) == 2 and sys.argv[1]: print((out.get(sys.argv[1], "error"))) else: f_json_print(out)