Windows利用Python和定时器等库,自动定时获取Windows系统中CPU的负载、温度、内存占用等信息,定时间隔2秒,采集1000个样本数据
以下是一个示例代码,可以实现你所需的功能:
import psutil
import time
sample_num = 1000
interval = 2
cpu_load = []
cpu_temp = []
mem_usage = []
for i in range(sample_num):
cpu_load.append(psutil.cpu_percent(interval=interval))
cpu_temp.append(psutil.sensors_temperatures()['coretemp'][0].current)
mem_usage.append(psutil.virtual_memory().percent)
time.sleep(interval)
print("CPU负载:", cpu_load)
print("CPU温度:", cpu_temp)
print("内存占用:", mem_usage)
这个程序使用了 psutil
库来获取系统的 CPU 负载、温度和内存占用等信息。在循环中,它每隔 interval
秒钟采集一次数据,共采集 sample_num
次。最后,它输出了采集到的数据。
需要注意的是,这个程序只能在 Windows 系统下运行,并且需要管理员权限才能获取 CPU 温度信息。如果你没有管理员权限,那么 psutil.sensors_temperatures()
函数返回的结果将是空的。
利用Python和定时器等库,自动定时获取CPU的负载、温度、内存占用等信息,定时间隔2秒,采集1000个样本数据
以下是使用Python编写的示例代码,可以自动定时获取CPU的负载、温度、内存占用等信息,定时间隔2秒,采集1000个样本数据:
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秒钟,以便下一次采样。
如果需要将采样数据保存下来,可以将每次采样的结果存入一个列表中,最后将结果写入文件或数据库中。例如:
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文件中,以便后续处理和分析。
Windows利用Python和定时器等库,自动定时获取CPU的负载、温度、内存占用等信息,定时间隔2秒,采集1000个样本数据,分别写入CSV、Excel文件中。调用pandas、matplotlib等库,对数据进行分析、绘制时间图。
以下是Python代码实现:
import psutil
import time
import csv
import openpyxl
import pandas as pd
import matplotlib.pyplot as plt
# 获取CPU负载、温度、内存占用等信息
def get_cpu_info():
cpu_percent = psutil.cpu_percent()
cpu_temp = psutil.sensors_temperatures().get('coretemp')[0].current
mem_percent = psutil.virtual_memory().percent
return cpu_percent, cpu_temp, mem_percent
# 写入CSV文件
def write_csv(data):
with open('cpu_info.csv', 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow(data)
# 写入Excel文件
def write_excel(data):
wb = openpyxl.load_workbook('cpu_info.xlsx')
sheet = wb.active
sheet.append(data)
wb.save('cpu_info.xlsx')
# 采集1000个样本数据,每隔2秒采集一次
for i in range(1000):
cpu_percent, cpu_temp, mem_percent = get_cpu_info()
current_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
# 写入CSV文件
write_csv([current_time, cpu_percent, cpu_temp, mem_percent])
# 写入Excel文件
write_excel([current_time, cpu_percent, cpu_temp, mem_percent])
time.sleep(2)
# 读取CSV文件并绘制时间图
data = pd.read_csv('cpu_info.csv', header=None)
data.columns = ['time', 'cpu_percent', 'cpu_temp', 'mem_percent']
data['time'] = pd.to_datetime(data['time'])
data = data.set_index('time')
data.plot(figsize=(10, 5))
plt.title('CPU Info')
plt.xlabel('Time')
plt.ylabel('Percentage/℃')
plt.show()
以上代码会生成两个文件:cpu_info.csv
和cpu_info.xlsx
,分别用于存储采集的数据。然后,读取CSV文件并使用pandas和matplotlib库对数据进行分析和绘图。绘制结果如下:
相关推荐













