用python语言写一个脚本,内容为一个图形化界面的测试硬盘工具,可查看硬盘信息可以跑硬盘性能,跑性能的时候可生产图形化数据显示
时间: 2023-11-27 16:48:59 浏览: 45
以下是一个简单的Python脚本,用于测试硬盘性能并生成图形化数据显示。它使用了Tkinter库来创建图形用户界面,并使用psutil库来获取系统信息和性能数据,matplotlib库用于图形化数据显示。
```python
import tkinter as tk
from tkinter import messagebox
import psutil
import time
import matplotlib.pyplot as plt
class App:
def __init__(self, master):
self.master = master
master.title("硬盘测试工具")
self.disk_info_label = tk.Label(master, text="硬盘信息:")
self.disk_info_label.grid(row=0, column=0, sticky=tk.W)
self.disk_info_text = tk.Text(master, height=10, width=50)
self.disk_info_text.grid(row=1, column=0, sticky=tk.W)
self.disk_perf_label = tk.Label(master, text="硬盘性能测试:")
self.disk_perf_label.grid(row=2, column=0, sticky=tk.W)
self.start_button = tk.Button(master, text="开始测试", command=self.start_test)
self.start_button.grid(row=3, column=0, sticky=tk.W)
self.stop_button = tk.Button(master, text="停止测试", command=self.stop_test, state=tk.DISABLED)
self.stop_button.grid(row=3, column=1, sticky=tk.W)
self.plot_button = tk.Button(master, text="生成图表", command=self.generate_plot, state=tk.DISABLED)
self.plot_button.grid(row=3, column=2, sticky=tk.W)
self.progress_bar = tk.Progressbar(master, orient=tk.HORIZONTAL, length=200, mode='determinate')
self.progress_bar.grid(row=4, column=0, sticky=tk.W)
self.running = False
self.start_time = 0
self.elapsed_time = 0
self.disk_usage = []
def start_test(self):
self.running = True
self.start_time = time.time()
self.start_button.config(state=tk.DISABLED)
self.stop_button.config(state=tk.NORMAL)
self.plot_button.config(state=tk.DISABLED)
messagebox.showinfo("提示", "测试已开始,请等待测试完成")
while self.running:
try:
disk_usage = psutil.disk_io_counters().read_bytes
self.disk_usage.append(disk_usage)
time.sleep(0.1)
except psutil.NoSuchProcess:
pass
self.elapsed_time = time.time() - self.start_time
self.progress_bar["value"] = self.elapsed_time / 10
if self.elapsed_time >= 10:
self.running = False
self.start_button.config(state=tk.NORMAL)
self.stop_button.config(state=tk.DISABLED)
self.plot_button.config(state=tk.NORMAL)
messagebox.showinfo("提示", "测试已完成")
def stop_test(self):
self.running = False
self.start_button.config(state=tk.NORMAL)
self.stop_button.config(state=tk.DISABLED)
self.plot_button.config(state=tk.NORMAL)
messagebox.showinfo("提示", "测试已停止")
def generate_plot(self):
plt.plot(self.disk_usage)
plt.xlabel('时间(秒)')
plt.ylabel('硬盘读取速度(字节/秒)')
plt.title('硬盘读取速度变化图')
plt.show()
root = tk.Tk()
app = App(root)
root.mainloop()
```
这个脚本创建了一个简单的图形用户界面,其中包括一个文本框用于显示硬盘信息,三个按钮:开始测试、停止测试和生成图表,以及一个进度条用于显示测试进度。当用户点击“开始测试”按钮时,脚本将启动一个循环,每0.1秒记录一次硬盘读取速度,直到达到10秒的测试时间。在测试期间,进度条将显示测试进度。一旦测试完成,用户可以点击“生成图表”按钮来生成一个图形化显示硬盘读取速度变化的图表。
阅读全文