Python3+PYQT5 实现并打包exe小工具(1)
前言:
由于项目原因,配置测试环境与正式环境切换频率很高,固写了一键切换环境的工具。用于记录。
实现逻辑:
1、读取注册表中客户端的安装目录,把固定的环境配置文件添加到固定目录下实现配置测试环境;
2、通过读取注册表中客户端的安装目录,遍历固定目录下的文件,删除环境文件实现恢复正式环境;
3、通过PYQT5实现gui界面调用函数,自由切换环境;
代码实现:
代码不涉及项目
import sys
from PyQt5.QtWidgets import QMainWindow, QPushButton, QApplication
from PyQt5 import QtWidgets
import os, shutil, time, win32api, win32con class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI() def get_pak_ini_path(self):
self.get_Installation_path()
if os.path.exists(r'./devtools_resources.pak'):
shutil.copy(r'./devtools_resources.pak', self.key_vule_pak)
if os.path.exists(r'./wallpaperurl.ini'):
shutil.copy(r'./wallpaperurl.ini', self.key_vule_ini)
else:
time.sleep(5)
else:
time.sleep(5) def get_Installation_path(self):
# 根据键的路径打印key值
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,
'SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\kdesk', 0,
win32con.KEY_READ) # 打印该路径下的某个键值
key_vule = win32api.RegQueryValueEx(key, "InstallLocation") #
# 元组转换成列表,删除多余元素。获取客户端安装路径
self.key_vule_new = list(key_vule).pop(0)
self.key_vule_pak = self.key_vule_new + 'cef'
self.key_vule_ini = self.key_vule_new + 'data' def del_pak_ini_path(self):
self.get_Installation_path()
dir_or_files = []
dir_or_files = os.listdir(self.key_vule_ini);
# print(dir_or_files) for f in dir_or_files:
filepath = os.path.join(self.key_vule_ini, 'wallpaperurl.ini')
if os.path.isfile(filepath):
os.remove(filepath)
break
else:
break def initUI(self):
btn1 = QPushButton('测试环境前端',self)
btn1.move(60,100) btn2 = QPushButton('正式环境前端',self)
btn2.move(200,100)
# 按钮点击行为
self.one = btn1.clicked.connect(self.buttonClicked_1)
self.two = btn2.clicked.connect(self.buttonClicked_2)
# 窗口大小
self.statusBar()
self.setGeometry(400,400,390,250)
self.setWindowFilePath('前端环境配置') self.show() def buttonClicked_1(self):
sender = self.sender()
# 引用函数
self.initUI()
# 按钮调用操作函数
self.one = self.get_pak_ini_path()
self.statusBar().showMessage(sender.text()+''+ '已点击') def buttonClicked_2(self):
sender = self.sender()
# 引用函数
self.initUI()
# 按钮调用操作函数
self.two = self.del_pak_ini_path()
self.statusBar().showMessage(sender.text()+''+ '已点击') if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
ui = MainWindow()
ui.show()
sys.exit(app.exec_())
打包exe工具包传送门:
Python3+PYQT5 实现并打包exe小工具(1)的更多相关文章
- Python3+PYQT5 实现并打包exe小工具(2)
前言:前篇已经通过python代码实现了逻辑,传送门:https://www.cnblogs.com/jc-home/p/14447850.html 现在后篇记录的是打包成exe的方式给项目其他同事使 ...
- 【Python】Python实现Excel用例直接导入testlink-UI界面小工具
1.写在前面 testlink上传用例一种方法是excel转换为xml,然后再用xml上传,还有一种是调用api进行上传.最开始写了个转换工具,是将excel转换为xml,然后在testlink里上传 ...
- 【xmind converse excel】测试用例定制化小工具
背景 公司使用jira, jira写测试用例,jira可以通过execl导入进jira, 生成测试用例,但是模板很不统一,如果只是再execl中修改,又觉得及其的麻烦,所以写了一个xmind 转化为定 ...
- 【爬坑】python3+pyqt5+pyinstaller 打包成exe的各种问题
windows系统+python3+pyqt5+pyinstaller打包,经常会出现各种打包异常情况.如果代码没有特别异常,那么综合原因,大抵都是这四个元素之间的匹配问题,引起的.作者:一心狮链接: ...
- PyQt5环境搭建及cx_freeze打包exe
Python的图形库也有好几个,Qt文档和使用面还是要广一些. 打包成可执行文件的也有好几个,PyInstaller用的比较多,但是PyInstaller目前还不支持Python3.6(开发版支持3. ...
- python3 小工具
扫描IP的端口是否开放:Porttest.py # -*- coding: utf-8 -*- import sys import os import socket #扫描 def scanport( ...
- R shiny 小工具Windows本地打包部署
目录 服务器部署简介 windows打包部署 1. 部署基本框架 2.安装shiny脚本需要的依赖包 3.创建运行shiny的程序 [报错解决]无法定位程序输入点EXTPTE_PTR于动态链接库 将小 ...
- [破解]java打包Exe工具 - Jar2Exe Wizard
打包java文件为exe的方法和软件有很多,还有一些开源的软件和一些免费的软件. 我用过的所有打包exe软件中,Jar2Exe Wizard是最好用的,但是只有一个月的试用期,需要的可以从官网下载. ...
- install4j 工具为java程序打包exe
用 install4j 工具为java程序打包exe 制作人:mark 制作时间:2013-05-02 用Eclipse 将程序源码打包成jar文件. 打包jar方法我不做介绍了,相信大家都会,不会的 ...
随机推荐
- NoSQL:一个帝国的崛起
01关系数据库帝国 现在是公元2009年,关系帝国已经统治了我们30多年,实在是太久了. 1970年,科德提出关系模型,1974年张伯伦和博伊斯制造出了SQL ,帝国迅速建立起了统治. 从北美到欧洲, ...
- Spring Security原理分析:系列集合
Spring Security 工作原理概览:https://blog.csdn.net/u012702547/article/details/89629415 spring security执行原理 ...
- 图片轮播展示效果-2D实现
图片的轮播展示效果如果使用2D实现,需要将3D中存在的近大远小效果使用图片的缩放呈现,因此需要存储和计算图片的位置同时还要计算存储图片的缩放信息.将所有图片的位置连线看作是一个椭圆,就可以根据图片的个 ...
- 力扣643.子数组最大平均数I-C语言实现
题目 给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数. 示例: 输入:[1,12,-5,-6,50,3], k = 4 输出:12.75 解释:最大平均数 (12-5- ...
- Codeforces750E. New Year and Old Subsequence (线段树维护DP)
题意:长为2e5的数字串 每次询问一个区间 求删掉最少几个字符使得区间有2017子序列 没有2016子序列 不合法输出-1 题解:dp i,p(0-4)表示第i个数匹配到2017的p位置删掉的最少数 ...
- Codeforces301D. Yaroslav and Divisors
题意:2e5的全排列 每次询问一个区间有多少对数 满足一个数是另一个数的倍数 题解:考虑离线来做 看到有个说法说 在处理有两种约束的问题时 一般用数据结构边插入边询问的方式 这个题正是如此 我们用su ...
- 02、Jmeter正则表达式提取器
转载自:http://blog.csdn.net/quiet_girl/article/details/50724313 在使用Jmeter过程中,会经常使用到正则表达式提取器提取器,虽然并不直接涉及 ...
- 7A - Kalevitch and Chess
A. Kalevitch and Chess time limit per test 2 seconds memory limit per test 64 megabytes input standa ...
- VS2010下如何查看类的内存布局
用VS2010查看类的内存布局,这里用两种方法 (1)MSVC有个隐藏的"/d1"开关,通过这个开关可以查看项目中类的内存布局情况. 修改项目属性,添加"/d1 repo ...
- spyder import tensorflow
之前安装了tensorflowgpu,但是在spyder中import会失败. 原因是因为新建了环境,要activate tensorflow-gpu进入安装了tensorflow 的环境才可以imp ...