Python获取CPU的温度
在计算机领域中,CPU温度是一个重要的指标。过高的CPU温度可能会导致系统崩溃、性能下降甚至损坏硬件。因此,了解和监测CPU温度对于维护计算机的稳定运行至关重要。
本文将介绍如何使用Python编程语言获取CPU的温度。我们将使用几个流行的Python库和工具来实现这个目标。
方法和工具
1. 使用psutil库
[psutil](
首先,您需要安装psutil库。可以使用以下命令在命令行中进行安装:
pip install psutil
安装完成后,您可以使用以下代码获取CPU温度:
import psutil
def get_cpu_temperature():
temperatures = psutil.sensors_temperatures()
cpu_temperatures = temperatures['coretemp']
average_temperature = sum(sensor.current for sensor in cpu_temperatures) / len(cpu_temperatures)
return average_temperature
temperature = get_cpu_temperature()
print(f"CPU温度: {temperature}℃")
上述代码中,我们首先使用
psutil.sensors_temperatures()
方法获取所有的温度传感器信息。然后,我们从中选择核心温度传感器(通常是
coretemp
)。接着,我们计算出所有核心温度的平均值,并将其作为CPU温度返回。
2. 使用sensors命令
在Linux系统中,您可以使用
sensors
命令来获取CPU温度。该命令通常与
lm-sensors
软件包一起安装。
要在Python中使用
sensors
命令,我们可以使用
subprocess
库来运行命令并捕获输出。
以下是一个示例代码:
import subprocess
def get_cpu_temperature():
process = subprocess.Popen(['sensors'], stdout=subprocess.PIPE)
output, _ = process.communicate()
# 查找CPU温度行
for line in output.decode().split('\n'):
if line.startswith('Package id'):
temperature = line.split()[3][1:]
return float(temperature)
temperature = get_cpu_temperature()
print(f"CPU温度: {temperature}℃")
上述代码中,我们使用
subprocess.Popen()
方法运行
sensors
命令,并将输出捕获到
output
变量中。然后,我们遍历输出的每一行,找到以“Package id”开头的行,并从中提取出温度值。
3. 使用WMI库(仅适用于Windows)
对于Windows系统,您可以使用[WMI]( Management Instrumentation(Windows管理工具)的缩写,用于获取与Windows操作系统相关的信息。
首先,您需要安装WMI库。可以使用以下命令在命令行中进行安装:
pip install WMI
安装完成后,您可以使用以下代码获取CPU温度:
import wmi
def get_cpu_temperature():
w = wmi.WMI(namespace="root\\OpenHardwareMonitor")
temperature_sensors = w.Sensor()
# 查找CPU温度传感器
for sensor in temperature_sensors:
if sensor.SensorType == 'Temperature' and sensor.Name == 'CPU Package':
temperature = sensor.Value
return float(temperature)
temperature = get_cpu_temperature()
print(f"CPU温度: {temperature}℃")
上述代码中,我们首先创建了一个
WMI
对象,并指定命名空间为
root\\OpenHardwareMonitor
。然后,我们使用
Sensor()
方法获取所有的传感器信息。接着,我们遍历传感器列表,找到名称为“CPU Package”的温度传感器,并返回其温度值。
本文介绍了如何使用Python获取CPU的温度。我们使用了不同的方法和工具来实现这个目标,包括使用psutil库、sensors命令和WMI库(仅适用于Windows)。您可以根据自己的需求选择适合的方法