Форум сайта python.su
0
Доброго времени суток. Написал небольшой скрипт для получения информации о температуре ядра гпу и самого горячего ядра цпу. Интересует, нельзя ли оптимизировать скрипт? Мне он кажется немного громоздким.
#!/usr/bin/env python3 gpuPath = '/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon3/temp1_input' cpu1Path = '/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp2_input' cpu2Path = '/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp3_input' cpu3Path = '/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp4_input' cpu4Path = '/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp5_input' with open(gpuPath, 'r') as g: gpuTemp = int(g.read()) / 1000 with open(cpu1Path, 'r') as c1: cpu1Temp = int(c1.read()) / 1000 with open(cpu2Path, 'r') as c2: cpu2Temp = int(c2.read()) / 1000 with open(cpu3Path, 'r') as c3: cpu3Temp = int(c3.read()) / 1000 with open(cpu4Path, 'r') as c4: cpu4Temp = int(c4.read()) / 1000 cpuTemps = (cpu1Temp, cpu2Temp, cpu3Temp, cpu4Temp) maxCpuTemp = cpuTemps[0] for i in cpuTemps[1:-1]: if i > maxCpuTemp: maxCpuTemp = i print(str(maxCpuTemp) + '°C', ' ', str(gpuTemp) + '°C')
Отредактировано Atuan (Сен. 16, 2017 14:15:53)
Офлайн
221
Например так:
#!/usr/bin/env python3 data = { 'gpu': {'path': '/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon3/temp1_input'}, 'cpu1': {'path': '/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp2_input'}, 'cpu2': {'path': '/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp3_input'}, 'cpu3': {'path': '/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp4_input'}, 'cpu4': {'path': '/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp5_input'}, } for name, d in data.items(): with open(d['path']) as f: d['temp'] = int(f.read()) / 1000 max_cpu_temp = max([d['temp'] for name, d in data.items() if name.startswith('cpu')]) gpu_temp = data['gpu']['temp'] print('{}°C\t{}°C'.format(max_cpu_temp, gpu_temp))
Офлайн
0
JOHN_16,
спасибо большое за показательный пример.
Офлайн