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

我们用到的是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. 浅入Kubernetes(6):CKAD认证中的部署教程

    目录 预设网络 kubeadm 安装 k8s 配置 calico 自动补全工具 状态描述 目前为止,笔者已经写了 5 篇关于 k8s 的文章,这一篇笔者将介绍 CKAD 认证官方课程中,如何部署 k8 ...

  2. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之镜像制作win2008r2-19

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之镜像制作win2008r2-19 欢迎加QQ群:1026880196 进行交流学习 制作OpenSta ...

  3. Idea使用指南--实用版

    idea使用指南--基础配置: 视频链接:https://www.bilibili.com/video/av21735428/?p=1 idea安装: 快捷方式create destop shortc ...

  4. 孙悟空的身外身法术使用了Java设计模式:原型模式

    目录 定义 意图 主要解决问题 何时使用 优缺点 结构 简单形式的原型模式 登记形式的原型模式 两种形式比较 浅克隆和深克隆 孙悟空的身外身法术 浅克隆实现 深克隆实现 定义 原型模式属于对象的创建型 ...

  5. 群晖 创建nfs 共享文件夹 k8s 使用

    1) 打开控制面板 2) 打开共享文件夹 3) 新增共享文件夹 4) 基本信息配置 2) 3) 4) 5) 点完确定,应该会退出,继续选中刚才创建的,点编辑 2) 3) 5)返回主页面,点击file ...

  6. Salesforce 集成篇零基础学习(一)Connected App

    本篇参考: https://zhuanlan.zhihu.com/p/89020647 https://trailhead.salesforce.com/content/learn/modules/c ...

  7. html书签展示(带搜索)

    源代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title ...

  8. 【MRR】转-MySQL 的 MRR 优化

    MRR,全称「Multi-Range Read Optimization」. 简单说:MRR 通过把「随机磁盘读」,转化为「顺序磁盘读」,从而提高了索引查询的性能. 至于: 为什么要把随机读转化为顺序 ...

  9. hdu1686 最大匹配次数 KMP

    题意:      给你两个串,问你串a在串b中出现了多少次. 思路:       直接匹配,KMP时匹配到匹配串的最后一个的时候不用跳出,直接匹配就行了,最后一个'/0'不会和目标串匹配,所以经过ne ...

  10. WideCharToMultiByte 与 MultiByteToWideChar

    先看看这篇关于Windows编码的文章:http://blog.csdn.net/shyboy_nwpu/article/details/4431668 再看看这篇关于两个函数参数和用法的说明:htt ...