Python GUI自动化工具AutoGUI在Linux平台的应用

版权申诉
0 下载量 83 浏览量 更新于2024-10-22 收藏 3KB ZIP 举报
Python是一种广泛使用的高级编程语言,它以其清晰的语法和强大的功能而闻名。Python在自动化领域有着广泛的应用,尤其是在GUI自动化测试方面。GUI(Graphical User Interface,图形用户界面)自动化指的是通过程序模拟用户的交互行为(如点击、输入、拖拽等),实现对应用程序的自动化操作。Python的GUI自动化工具之一是PyAutoGUI。 PyAutoGUI是一个用Python编写的跨平台GUI自动化库,它允许开发者编写脚本来控制鼠标和键盘,完成一系列自动化任务。使用PyAutoGUI,可以实现以下功能: 1. 控制鼠标:移动鼠标、点击、拖拽、滚动等。 2. 控制键盘:发送文本、按键操作等。 3. 屏幕操作:获取屏幕分辨率、捕获屏幕截图、图像识别等。 PyAutoGUI的跨平台特性意味着它可以在多个操作系统上运行,包括Windows、OS X和Linux。这对于需要在不同操作系统上自动化任务的开发者来说是一个巨大的优势。虽然每个操作系统都有其特定的自动化工具,但PyAutoGUI提供了一个统一的接口来编写可以在任何平台上运行的代码。 安装PyAutoGUI非常简单,可以通过Python的包管理工具pip来安装。开发者只需要在命令行中输入以下命令: ``` pip install pyautogui ``` 安装完成后,就可以开始使用PyAutoGUI编写GUI自动化脚本了。 PyAutoGUI的源代码托管在GitHub上,这意味着开发者可以访问到最新的源代码,并且可以参与到代码的贡献中去。如果在使用PyAutoGUI的过程中遇到问题,开发者可以查看GitHub上的文档,或者向社区寻求帮助。此外,GitHub上还有许多使用PyAutoGUI编写的项目,这些都可以作为学习和参考的好资源。 文件名称列表中包含了两个文件:NotePad_icon.png和Auto_GUI.ipynb。NotePad_icon.png很可能是与GUI自动化相关的某个应用程序的图标,例如Windows记事本。而Auto_GUI.ipynb则是一个Jupyter Notebook文件,这是一个非常适合数据科学、教学和自动化任务的交互式编程环境。在Jupyter Notebook中编写PyAutoGUI脚本可以方便地展示GUI操作的实时效果,并且可以包含详细的文档说明和代码注释,有助于其他人理解自动化脚本的逻辑。 总之,PyAutoGUI是一个功能强大的Python库,它为开发者提供了一种方便快捷的方式来自动化GUI操作,大大简化了测试、数据输入、网站爬虫和其他需要交互式操作的任务。通过它,开发者可以更加高效地完成重复性的任务,让机器为人类解放双手。

def unzip_infer_data(src_path,target_path): ''' 解压预测数据集 ''' if(not os.path.isdir(target_path)): z = zipfile.ZipFile(src_path, 'r') z.extractall(path=target_path) z.close() def load_image(img_path): ''' 预测图片预处理 ''' img = Image.open(img_path) if img.mode != 'RGB': img = img.convert('RGB') img = img.resize((224, 224), Image.BILINEAR) img = np.array(img).astype('float32') img = img.transpose((2, 0, 1)) # HWC to CHW img = img/255 # 像素值归一化 return img infer_src_path = './archive_test.zip' infer_dst_path = './archive_test' unzip_infer_data(infer_src_path,infer_dst_path) para_state_dict = paddle.load("MyDNN") model = MyDNN() model.set_state_dict(para_state_dict) #加载模型参数 model.eval() #验证模式 #展示预测图片 infer_path='./archive_test/alexandrite_18.jpg' img = Image.open(infer_path) plt.imshow(img) #根据数组绘制图像 plt.show() #显示图像 #对预测图片进行预处理 infer_imgs = [] infer_imgs.append(load_image(infer_path)) infer_imgs = np.array(infer_imgs) label_dic = train_parameters['label_dict'] for i in range(len(infer_imgs)): data = infer_imgs[i] dy_x_data = np.array(data).astype('float32') dy_x_data=dy_x_data[np.newaxis,:, : ,:] img = paddle.to_tensor (dy_x_data) out = model(img) lab = np.argmax(out.numpy()) #argmax():返回最大数的索引 print("第{}个样本,被预测为:{},真实标签为:{}".format(i+1,label_dic[str(lab)],infer_path.split('/')[-1].split("_")[0])) print("结束")根据这一段代码续写一段利用这个模型进行宝石预测的GUI界面

176 浏览量