linux下利用python和定时器库,获取cpu的温度,定时间隔2秒,采集1000个数据
时间: 2024-05-02 13:19:29 浏览: 162
可以使用psutil库和time库来获取CPU温度和定时器。下面是一个示例代码:
```
import psutil
import time
def get_cpu_temp():
temp = psutil.sensors_temperatures()['coretemp'][0].current
return temp
for i in range(1000):
temp = get_cpu_temp()
print(f"第{i+1}次采集的CPU温度为 {temp} 摄氏度")
time.sleep(2)
```
这段代码会每2秒采集一次CPU温度,共采集1000次数据,并打印出每次采集的温度值。
相关问题
利用Python和定时器等库,自动定时获取CPU的负载、温度、内存占用等信息,定时间隔2秒,采集1000个样本数据
以下是使用Python编写的示例代码,可以自动定时获取CPU的负载、温度、内存占用等信息,定时间隔2秒,采集1000个样本数据:
```python
import psutil
import time
interval = 2 # 采样时间间隔
n_samples = 1000 # 采样次数
for i in range(n_samples):
cpu_percent = psutil.cpu_percent() # 获取CPU负载百分比
cpu_temp = psutil.sensors_temperatures().get('coretemp')[0].current # 获取CPU温度
mem_percent = psutil.virtual_memory().percent # 获取内存占用百分比
print(f"第{i+1}次采样:CPU负载={cpu_percent}%,CPU温度={cpu_temp}℃,内存占用={mem_percent}%")
time.sleep(interval)
```
在上述代码中,我们使用了`psutil`库来获取CPU负载、温度和内存占用等信息。其中,`psutil.cpu_percent()`函数可以获取CPU负载百分比,`psutil.sensors_temperatures()`函数可以获取CPU温度,`psutil.virtual_memory()`函数可以获取内存占用信息。
我们将采样时间间隔设为2秒,采样次数设为1000次,通过循环获取CPU负载、温度和内存占用等信息,并将其打印出来。在每次循环结束后,程序会暂停2秒钟,以便下一次采样。
如果需要将采样数据保存下来,可以将每次采样的结果存入一个列表中,最后将结果写入文件或数据库中。例如:
```python
import psutil
import time
import csv
interval = 2 # 采样时间间隔
n_samples = 1000 # 采样次数
data = [] # 存储采样数据的列表
for i in range(n_samples):
cpu_percent = psutil.cpu_percent() # 获取CPU负载百分比
cpu_temp = psutil.sensors_temperatures().get('coretemp')[0].current # 获取CPU温度
mem_percent = psutil.virtual_memory().percent # 获取内存占用百分比
data.append([i+1, cpu_percent, cpu_temp, mem_percent]) # 将采样数据存入列表
print(f"第{i+1}次采样:CPU负载={cpu_percent}%,CPU温度={cpu_temp}℃,内存占用={mem_percent}%")
time.sleep(interval)
# 将采样数据写入CSV文件
with open('cpu_data.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['序号', 'CPU负载(%)', 'CPU温度(℃)', '内存占用(%)'])
writer.writerows(data)
```
在上述代码中,我们定义了一个`data`列表,用于存储采样数据。在每次采样结束后,将采样数据存入`data`列表中。最后,将`data`列表中的数据写入CSV文件中,以便后续处理和分析。
用Python编写一段代码:利用定时器等库,自动定时获取CPU的负载、温度、内存占用等信息,定时间隔2秒,采集1000个样本数据,分别写入CSV、Excel文件中。
好的,以下是Python代码实现:
```python
import psutil
import time
import csv
import openpyxl
# 获取CPU负载、温度、内存占用信息
def get_system_info():
cpu_load = psutil.cpu_percent()
cpu_temp = psutil.sensors_temperatures().get('coretemp')[0].current
memory_usage = psutil.virtual_memory().percent
return cpu_load, cpu_temp, memory_usage
# 写入CSV文件
def write_to_csv(data):
with open('system_info.csv', mode='a', newline='') as file:
writer = csv.writer(file)
writer.writerow(data)
# 写入Excel文件
def write_to_excel(data):
wb = openpyxl.load_workbook('system_info.xlsx')
ws = wb.active
ws.append(data)
wb.save('system_info.xlsx')
# 定时采集信息
def collect_system_info():
for i in range(1000):
cpu_load, cpu_temp, memory_usage = get_system_info()
data = [cpu_load, cpu_temp, memory_usage]
write_to_csv(data)
write_to_excel(data)
time.sleep(2)
collect_system_info()
```
该代码会每隔2秒采集一次CPU负载、温度、内存占用等信息,并将这些数据写入CSV、Excel文件中,共采集1000个样本数据。
阅读全文