不想记密码?密码全设置成一样担心安全?用别人程序担心密码泄露?看完本博客,开发一个属于自己的密码管理程序吧

我们用到的是python的wxPython界面库包

先来看下成果界面:简洁主题明确

 要想开发wxPython需要先下载对应包,打开cmd执行下列代码

 pip install -U wxPython

进入IDE进行开发,代码如下,可以直接运行查看

import wx
import os class My(wx.Frame): def __init__(self, parent, title):
super(My, self).__init__(parent, title=title, size=(600, 400))
panel = wx.Panel(self) self.searchCtrl = wx.TextCtrl(panel, pos=(150, 10), size=(300, 30), style=wx.TE_CENTER)
self.search = wx.Button(panel, label="查找", pos=(460, 12))
self.search.Bind(wx.EVT_BUTTON, self.findAccount) self.label1 = wx.StaticText(panel, label="所属", pos=(40, 80))
self.belong = wx.TextCtrl(panel, pos=(90, 76), size=(400, 30), style=wx.TE_LEFT) self.label2 = wx.StaticText(panel, label="账号", pos=(40, 140))
self.account = wx.TextCtrl(panel, pos=(90, 136), size=(400, 30), style=wx.TE_LEFT) self.label3 = wx.StaticText(panel, label="密码", pos=(40, 200))
self.password = wx.TextCtrl(panel, pos=(90, 196), size=(400, 30), style=wx.TE_LEFT) self.save = wx.Button(panel, label="保存", pos=(90, 266), size=(80, 30))
self.save.Bind(wx.EVT_BUTTON, self.saveClicked) self.reset = wx.Button(panel, label="刷新", pos=(250, 266), size=(80, 30))
self.reset.Bind(wx.EVT_BUTTON, self.clearClick) self.Centre()
self.Show()
self.Fit() # 保存文本
def saveClicked(self, event):
belong = self.belong.GetValue()
account = self.account.GetValue()
password = self.password.GetValue()
if belong == "":
digLog("所属不能为空", "错误信息提示")
elif account == "":
digLog("账号不能为空", "错误信息提示")
elif password == "":
digLog("密码不能为空", "错误信息提示")
else:
result = alike(self.belong.GetValue())
if result:
digLog("该所属已存在", "失败信息提示")
return
text = belong + "/" + account + "/" + password
with open(os.getcwd() + "\pass.txt", 'a+', encoding='utf-8') as f:
f.write("\n" + text)
digLog("保存成功", "成功信息提示")
self.save.Enable(False) # 刷新
def clearClick(self, event):
self.searchCtrl.Clear()
self.belong.Clear()
self.account.Clear()
self.password.Clear()
self.save.Enable(True) # 读取文本
def findAccount(self, event):
target = self.searchCtrl.GetValue()
if target == "":
digLog("输入框不能为空", "失败信息提示")
return
with open(os.getcwd() + "\pass.txt", 'a+', encoding='utf-8') as f: # 从TXT文件中读出数据
for line1 in f:
if target in line1.split("/")[0]: # 是否包含文字
self.belong.SetValue(line1.split("/")[0])
self.account.SetValue(line1.split("/")[1])
self.password.SetValue(line1.split("/")[2])
digLog("查找成功", "成功信息提示")
self.save.Enable(False)
return
digLog("未查到", "失败信息提示")
return # 判断添加的账号是否存在
def alike(exist):
with open(os.getcwd() + "\pass.txt", 'a+', encoding='utf-8') as foo:
for line in foo.readlines():
if exist in line.split("/")[0]:
return True
else:
return False def digLog(msg, title):
toastone = wx.MessageDialog(None, msg, title, wx.YES_DEFAULT | wx.ICON_QUESTION)
if toastone.ShowModal() == wx.ID_YES: # 如果点击了提示框的确定按钮
toastone.Destroy() # 则关闭提示框 app = wx.App()
My(None, "保存密码程序")
app.MainLoop()

测试没问题后进行打包exe程序

打包需要用到一个库,强烈建议使用 pip 在线安装的方式来安装 PyInstaller 模块,不要使用离线包的方式来安装,因为 PyInstaller 模块还依赖其他模块,pip 在安装 PyInstaller 模块时会先安装它的依赖模块。

pip install pyinstaller

完成后进行打包,进入程序文件目录,打开cmd

执行下列命令 (-F是在dist只生成exe文件  -w是取消程序启动的命令框,-n是指定程序名,-i是指定程序图标 )

pyinstaller -F -w -n savePW -i .\ico.ico index.py

成功如下:

 生成的文件在程序文件的dist目录下,告别繁琐的密码文件吧

wxPython开发之密码管理程序的更多相关文章

  1. 自己开发Thinkpad电源管理程序

    自己开发Thinkpad电源管理程序 - 知乎 https://zhuanlan.zhihu.com/p/20706403

  2. FastAPI(六十九)实战开发《在线课程学习系统》接口开发--修改密码

    之前我们分享了FastAPI(六十八)实战开发<在线课程学习系统>接口开发--用户 个人信息接口开发.这次我们去分享实战开发<在线课程学习系统>接口开发--修改密码 我们梳理一 ...

  3. django 开发忘记密码通过邮箱找回功能

    一.流程分析: 1.点击忘记密码====>forget.html页面,输入邮箱和验证码,发送验证链接网址的邮件====>发送成功,跳到send_success.html提示 2.到邮箱里找 ...

  4. Taro开发写密码支付弹层

    在支付的时候弹出填写密码,模仿了支付宝支付填写密码.主要是利用遮罩的来实现.直接上代码吧. html设计,通过标记控制显示. { showPayPwdInput ? <View classNam ...

  5. UliPad ----python 开发利器

    安装wxPython                                                                                          ...

  6. UliPad 初体验----python 开发利器

    学习python 有段时间,最近博客更新比较慢了,空闲时间在零零碎碎的学python ,难成文,也就没整理成博客. 学习python 最苦恼的就是没有趁手IDE ,之前学java 时 Eclipse  ...

  7. Python GUI开发环境的搭建

    原文:Python GUI开发环境的搭建 最近对Python的开发又来了兴趣,对于Python的开发一直停留在一个表面层的认识,玩的部分比较大. Python的入手简单,语法让人爱不释手,在网络通信方 ...

  8. python 开发利器

    UliPad 初体验----python 开发利器 Posted on 2013-10-28 22:36 虫师 阅读(436) 评论(3) 编辑 收藏 学习python 有段时间,最近博客更新比较慢了 ...

  9. wxpython分割窗研究(解决sashPosition=0无效的BUG)

    用wxpython开发一个简单的exe其实很简单的,但是在开发的过程中会遇到若干的坑.疑问.甚至bug,让人摸不清头脑!恰恰关于这方面的文档是少之又少,看来看去大家还是在官方的文档上加以引用说明,但是 ...

随机推荐

  1. 诸葛亮的锦囊妙计竟然是大名鼎鼎的Java设计模式:策略模式

    目录 应用场景 简单实现例子 改进代码 策略模式 定义 意图 主要解决问题 何时使用 优缺点 诸葛亮的锦囊妙计 应用场景 京东.天猫双十一,情人节商品大促销,各种商品有不同的促销活动 满减:满200减 ...

  2. 在Visual Studio 中使用git——使用git管理源代码(三)

    在Visual Studio 中使用git--什么是Git(一) 在Visual Studio 中使用git--给Visual Studio安装 git插件(二)   第三部分:使用git管理源代码 ...

  3. Centos7 安装RabbitMQ及配置(亲测)

    Rabbit MQ Linux 安装 Centos7 如果是重装先把erlang和rabbitmq卸载干净,不然还会重装失败<rabbitmq和erlang卸载> 记得删除/var/lib ...

  4. C/C++ 进程代码注入与提权/降权

    如果将shellcode注入到具有特定权限的进程中,我们就可以获得与该进程相同的权限,此方法可以用于提权与降权操作,注入有多种方式,最简单的是直接将metasploit生成的有效载荷直接注入到目标进程 ...

  5. HDU 1430 关系映射 + 打表 .

    题意是中文的不解释.(http://acm.hdu.edu.cn/showproblem.php?pid=1430) 思路:            这个题目直接BFS会超时的(我一开始超时了) ,如果 ...

  6. DVWA之Command injection(命令执行漏洞)

    目录 Low Medium Middle Impossible 命令执行漏洞的原理:在操作系统中, &  .&& .|  . ||   都可以作为命令连接符使用,用户通过浏览器 ...

  7. Python中os模块、csv模块和xlrd模块的使用

    目录 os模块的使用 open("test.txt","mode") 读取文件中的内容 f.read() f.readline(size) f.readline ...

  8. 14.PHP_PHP与XML技术

    PHP与XML技术 先把概念粘过来: 先来个基本模板: <?xml version="1.0" encoding="gb2312" standalone= ...

  9. 简单写个logictic回归

    最近做华为软件精英挑战赛热身赛,给出的demo是使用logistic做的金融风控,比赛要求很严格,如果使用Python 进行训练那么不能使用任何第三方机器学习库,只能使用Python和原生numpy1 ...

  10. 容器随Docker启动而启动

    在容器开启状态下 docker container update --restart=always 容器名