qianxiaohe 发表于 2024-7-29 10:53

Python密码记录管理工具

本帖最后由 qianxiaohe 于 2024-8-9 14:26 编辑

2024-08-09
'''
更新了界面
使用了Python标准库内的tkinter库、random库
使用了pyperclip库
'''

import tkinter # 界面
import tkinter.ttk # 加强界面
import tkinter.messagebox # 弹窗库
import random # 生成随机密码
import pyperclip # 密码复制到剪切板

'''
通用函数
'''
def 清空字符串空格(字符串):
    新字符串 = 字符串.replace(" ", "")
    return 新字符串

def 生成随机密码():
    小写字母 = "abcdefghijklmnopqrstuvwxyz"    # #密码组合
    大写字母 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    数字 = "0123456789"
    下划线 = "_"
    其他符号 = "~!@#$%^&*()-+=,."

    密码长度 = 8    # #密码长度
    密码组合 = 小写字母 + 大写字母 + 数字 + 下划线 + 其他符号    # #密码组合

    随机密码 = "".join(random.sample(密码组合, 密码长度))    # #生成随机密码
   
    #print(随机密码)    # #打印结果
    return 随机密码
      
def 表格数据清空(表格):
    表格 = 表格
    表格.delete(*表格.get_children())

def 表格数据加载(表格, 数据):
    表格 = 表格
    数据 = 数据
    表格数据清空(表格)
    for 行号, 数据行 in enumerate(数据):
      数据行.append("【复制密码】")
      数据行.append("【删除】")
      表格.insert("", 行号, text=str(行号+1), values=数据行)    # #给第0行添加数据,索引值可重复

'''
初始化变量
'''
密码本 = ""
列名 = ["平台", "账号", "密码", "备注","复制密码", "删除"]

'''
选择密码本
'''
密码本 = r"密码本"
with open(密码本, "a", encoding='utf-8') as 文件:    # #读取密码本
    pass

def 读取密码本():
    数据 = []
    单行数据 = []
    with open(密码本, "r", encoding='utf-8') as 文件:    # #读取密码本
      for 行 in 文件:
            平台, 账号, 密码, 备注 = 行.strip().split(' ')
            单行数据.append(平台)
            单行数据.append(账号)
            单行数据.append(密码)
            单行数据.append(备注)
            数据.append(单行数据)
            单行数据 = []
    return 数据

'''
模拟数据

数据 = [
    ["QQ", "123456789", "123456", "11155557777"],
    ["微信", "wuaipojie", "234567", "11155557777"],
    ["360", "wuaipojie", "345678", "无"],
    ["百度", "吾爱破解", "456789", "xxxxaaaa@qq.com"],
    ["抖音", "wuaidouyin", "douyin123", "无"],
    ["快手", "wuaikuaishou", "kuaishou123", "无"],
    ]
'''


'''
密码本界面
'''
密码本界面 = tkinter.Tk()
密码本界面.title("Python密码记录管理工具")    # #窗口标题
#密码本界面.geometry("600x500+200+20")   # #窗口位置500后面是字母x

'''
占位标签
'''
占位标签1 = tkinter.ttk.Label(密码本界面, text='      ')      # #占位
占位标签1.grid(row=0, column=0)      # #格子布局(0,0)
占位标签2 = tkinter.ttk.Label(密码本界面, text='      ')      # #占位
占位标签2.grid(row=1, column=0)      # #格子布局(1,0)
占位标签3 = tkinter.ttk.Label(密码本界面, text='      ')      # #占位
占位标签3.grid(row=2, column=0)      # #格子布局(2,0)
占位标签4 = tkinter.ttk.Label(密码本界面, text='      ')      # #占位
占位标签4.grid(row=3, column=0)      # #格子布局(3,0)
占位标签5 = tkinter.ttk.Label(密码本界面, text='      ')      # #占位
占位标签5.grid(row=4, column=0)      # #格子布局(4,0)
占位标签6 = tkinter.ttk.Label(密码本界面, text='      ')      # #占位
占位标签6.grid(row=6, column=8)      # #格子布局(6,0)
占位标签7 = tkinter.ttk.Label(密码本界面, text='      ')      # #占位
占位标签7.grid(row=7, column=8)      # #格子布局(7,0)

右占位标签1 = tkinter.ttk.Label(密码本界面, text='      ')      # #占位
右占位标签1.grid(row=0, column=9)      # #格子布局(0,9)
右占位标签2 = tkinter.ttk.Label(密码本界面, text='      ')      # #占位
右占位标签2.grid(row=1, column=9)      # #格子布局(1,9)
右占位标签3 = tkinter.ttk.Label(密码本界面, text='      ')      # #占位
右占位标签3.grid(row=2, column=9)      # #格子布局(2,9)
右占位标签4 = tkinter.ttk.Label(密码本界面, text='      ')      # #占位
右占位标签4.grid(row=3, column=9)      # #格子布局(3,9)
右占位标签5 = tkinter.ttk.Label(密码本界面, text='      ')      # #占位
右占位标签5.grid(row=4, column=9)      # #格子布局(4,9)
右占位标签6 = tkinter.ttk.Label(密码本界面, text='      ')      # #占位
右占位标签6.grid(row=6, column=9)      # #格子布局(6,9)
右占位标签7 = tkinter.ttk.Label(密码本界面, text='      ')      # #占位
右占位标签7.grid(row=7, column=9)      # #格子布局(7,9)

'''
提示标签
'''
提示标签标题 = tkinter.ttk.Label(密码本界面, text="信息提示 : ",anchor='e')      # #创建
提示标签标题.grid(row=1, column=1, sticky=tkinter.N+tkinter.S+tkinter.E+tkinter.W)      # #格子布局(1,1)
提示标签 = tkinter.ttk.Label(密码本界面, text="欢迎使用Python密码记录管理工具!",anchor='w')      # #创建
提示标签.grid(row=1, column=2, columnspan=3, sticky=tkinter.N+tkinter.S+tkinter.E+tkinter.W)      # #格子布局(1,2)(1,3)(1,4)

'''
菜单
'''
平台标签 = tkinter.ttk.Label(密码本界面, text='平台')      # #创建
账号标签 = tkinter.ttk.Label(密码本界面, text='账号')      # #创建
密码标签 = tkinter.ttk.Label(密码本界面, text='密码(点击随机生成)')      # #创建
备注标签 = tkinter.ttk.Label(密码本界面, text='备注')      # #创建
平台输入框 = tkinter.ttk.Entry(密码本界面)      # #创建
账号输入框 = tkinter.ttk.Entry(密码本界面)      # #创建
密码输入框 = tkinter.ttk.Entry(密码本界面)      # #创建
备注输入框 = tkinter.ttk.Entry(密码本界面)      # #创建
查询输入框 = tkinter.ttk.Entry(密码本界面)      # #创建
查询按钮 = tkinter.ttk.Button(密码本界面, text="查询", width=8)      # #创建
添加按钮 = tkinter.ttk.Button(密码本界面, text="添加", width=8)      # #创建
修改按钮 = tkinter.ttk.Button(密码本界面, text="修改", width=8)      # #创建
重置按钮 = tkinter.ttk.Button(密码本界面, text="重置", width=8)      # #创建
平台标签.grid(row=2, column=1)      # #格子布局(2,1)
账号标签.grid(row=2, column=2)      # #格子布局(2,2)
密码标签.grid(row=2, column=3)      # #格子布局(2,3)
备注标签.grid(row=2, column=4)      # #格子布局(2,4)
平台输入框.grid(row=3, column=1)      # #格子布局(2,1)
账号输入框.grid(row=3, column=2)      # #格子布局(2,2)
密码输入框.grid(row=3, column=3)      # #格子布局(2,3)
备注输入框.grid(row=3, column=4)      # #格子布局(2,4)
查询输入框.grid(row=1, column=4)      # #格子布局(1,4)
添加按钮.grid(row=3, column=5)      # #格子布局(3,5)
修改按钮.grid(row=3, column=6)      # #格子布局(3,6)
重置按钮.grid(row=1, column=6)      # #格子布局(1,6)
查询按钮.grid(row=1, column=5)      # #格子布局(1,5)

'''
表格
'''
密码表格滚动条=tkinter.ttk.Scrollbar(密码本界面,orient='vertical')      # #创建表格滚动条对象
密码表格 = tkinter.ttk.Treeview(密码本界面, show='headings', yscrollcommand=密码表格滚动条.set)      # #创建表格对象
密码表格滚动条['command']=密码表格.yview
密码表格['show'] = 'headings'      # #消除第一行第一列空列
密码表格["columns"] = 列名   # #定义列
密码表格.column("平台", width=145,anchor='w')          # #设置列
密码表格.column("账号", width=145,anchor='w')
密码表格.column("密码", width=145,anchor='w')
密码表格.column("备注", width=145,anchor='w')
密码表格.column("复制密码", width=80,anchor='center')
密码表格.column("删除", width=60,anchor='center')
密码表格.heading("平台", text="平台")      # #设置当前列显示的表头名
密码表格.heading("账号", text="账号")
密码表格.heading("密码", text="密码")
密码表格.heading("备注", text="备注")
密码表格.heading("复制密码", text="")
密码表格.heading("删除", text="")
表格数据加载(密码表格,读取密码本())
密码表格.grid(row=5, column=1, columnspan=7)      # #格子布局(5,0)(5,1)(5,2)(5,3)(5,4)(5,5)(5,7)
密码表格滚动条.grid(row=5,column=8,sticky='ns')      # #格子布局(5,8)
'''
执行动作
'''
def 重加载表格(event):
    数据 = []
    单行数据 = []
    with open(密码本, "r", encoding='utf-8') as 文件:    # #读取密码本
      for 行 in 文件:
            平台, 账号, 密码, 备注 = 行.strip().split(' ')
            单行数据.append(平台)
            单行数据.append(账号)
            单行数据.append(密码)
            单行数据.append(备注)
            数据.append(单行数据)
            单行数据 = []
    表格数据加载(密码表格,数据)
    数据 = []

def 查询操作(event):      # #当用户按下回车键时,打印输入框的内容
    print("查询操作!")
    查询的平台 = 清空字符串空格(查询输入框.get())    # #查询的平台
    数据 = []
    单行数据 = []
    with open(密码本, "r", encoding='utf-8') as 文件:    # #读取密码本
      for 行 in 文件:
            平台, 账号, 密码, 备注 = 行.strip().split(' ')
            if 查询的平台.lower() in 平台.lower():    # #查询匹配成功
                单行数据.append(平台)
                单行数据.append(账号)
                单行数据.append(密码)
                单行数据.append(备注)
                数据.append(单行数据)
            单行数据 = []
    表格数据加载(密码表格,数据)
    数据 = []
    提示标签.configure(text="查询成功!")      # #查询成功

def 查询重加载(event):      # #查询重加载
    print("查询操作!")
    查询的平台 = 清空字符串空格(查询输入框.get())    # #查询的平台
    数据 = []
    单行数据 = []
    with open(密码本, "r", encoding='utf-8') as 文件:    # #读取密码本
      for 行 in 文件:
            平台, 账号, 密码, 备注 = 行.strip().split(' ')
            if 查询的平台.lower() in 平台.lower():    # #查询匹配成功
                单行数据.append(平台)
                单行数据.append(账号)
                单行数据.append(密码)
                单行数据.append(备注)
                数据.append(单行数据)
            单行数据 = []
    表格数据加载(密码表格,数据)
    数据 = []

def 添加密码(event):
    #print("添加密码!")
   
    ''' 读取输入框 '''
    平台输入框内容 = 清空字符串空格(平台输入框.get())    # #获取输入框的内容,并格式化
    账号输入框内容 = 清空字符串空格(账号输入框.get())    # #获取输入框的内容,并格式化
    密码输入框内容 = 清空字符串空格(密码输入框.get())    # #获取输入框的内容,并格式化
    备注输入框内容 = 清空字符串空格(备注输入框.get())    # #获取输入框的内容,并格式化
    if 备注输入框内容 == "":
      备注输入框内容 = "无"
    输入的平台账号 = str(平台输入框内容) + "x" + str(账号输入框内容)

    ''' 写入内容 '''
    if 平台输入框内容 != "" and 账号输入框内容 != "" and 密码输入框内容 != "" and 备注输入框内容 != "":
      数据 = 读取密码本()    # #读取密码本数据并检查是否有相同平台账号
      for 单行数据 in 数据:
            平台, 账号, 密码, 备注 = 单行数据, 单行数据, 单行数据, 单行数据
            平台账号唯一性标志 = str(str(平台) + "x" + str(账号))
            if 输入的平台账号 == 平台账号唯一性标志:
                #print("添加失败,已存在相同的平台账号!")
                提示标签.configure(text="添加失败,已存在相同的平台账号!")
                return    # #有相同的直接退出

      with open(密码本, "a", encoding='utf-8') as 文件:    # #新平台账号直接添加
            文件.write(f"{平台输入框内容} {账号输入框内容} {密码输入框内容} {备注输入框内容}\n")
      #print("添加成功!")
      提示标签.configure(text="添加成功!")
      平台输入框.delete(0,tkinter.END)      # #清空
      账号输入框.delete(0,tkinter.END)      # #清空
      密码输入框.delete(0,tkinter.END)      # #清空
      备注输入框.delete(0,tkinter.END)      # #清空
    else:
      #print("添加失败,有输入框未填写!")
      提示标签.configure(text="添加失败,有输入框未填写!")

def 重置输入框(event):
    print("重置输入框!")
    查询输入框.delete(0,tkinter.END)
    平台输入框.delete(0,tkinter.END)
    账号输入框.delete(0,tkinter.END)
    密码输入框.delete(0,tkinter.END)
    备注输入框.delete(0,tkinter.END)
    查询的平台 = 清空字符串空格(查询输入框.get())    # #查询的平台
    数据 = []
    单行数据 = []
    with open(密码本, "r", encoding='utf-8') as 文件:    # #读取密码本
      for 行 in 文件:
            平台, 账号, 密码, 备注 = 行.strip().split(' ')
            if 查询的平台.lower() in 平台.lower():    # #查询匹配成功
                单行数据.append(平台)
                单行数据.append(账号)
                单行数据.append(密码)
                单行数据.append(备注)
                数据.append(单行数据)
            单行数据 = []
    表格数据加载(密码表格,数据)
    数据 = []
    提示标签.configure(text="重置成功!")

def 修改操作(event):
    print("修改操作!")
    选定行 = 密码表格.item(密码表格.focus())      # #当用户单击左键并弹起时,获得选中行全部内容
    if 选定行['values'] == '':
      return
    选定行标志 = str(选定行['values']) + "x" + str(选定行['values'])

    平台输入框内容 = 清空字符串空格(平台输入框.get())    #获取文本输入框的内容
    账号输入框内容 = 清空字符串空格(账号输入框.get())    #获取文本输入框的内容
    密码输入框内容 = 清空字符串空格(密码输入框.get())    #获取文本输入框的内容
    备注输入框内容 = 清空字符串空格(备注输入框.get())    #获取文本输入框的内容
   
    if 备注输入框内容 == "":
      备注输入框内容 = "无"
    修改后的内容 = str(平台输入框内容) + " " + str(账号输入框内容) + " " + str(密码输入框内容) + " " + str(备注输入框内容) + "\n"

    if 平台输入框内容 != "" and 账号输入框内容 != "" and 密码输入框内容 != "" :
      pass
    else:
      提示标签.configure(text="平台、账号或密码未填写!")
      return

    全部内容 = []
    with open(密码本, "r", encoding='utf-8') as 文件:
      for 行 in 文件:
            全部内容.append(行)

    for 行 in 全部内容:
      平台, 账号, 密码, 备注 = 行.strip().split(' ')
      if 选定行标志 == str(平台 + "x" + 账号):
            信息确认 = tkinter.messagebox.askquestion(title='注意!',message='确定修改吗!')# 信息确认弹窗 是 yes或 否 no

    if 信息确认 == "yes":
      pass
    elif 信息确认 == "no":
      提示标签.configure(text="取消修改!")
      return

    with open(密码本, "w", encoding='utf-8') as 文件:
      for 行 in 全部内容:
            平台, 账号, 密码, 备注 = 行.strip().split(' ')
            if 选定行标志 == str(平台 + "x" + 账号):
                文件.write(修改后的内容)
            else:
                文件.write(行)
    提示标签.configure(text="修改成功!")
    平台输入框.delete(0,tkinter.END)
    账号输入框.delete(0,tkinter.END)
    密码输入框.delete(0,tkinter.END)
    备注输入框.delete(0,tkinter.END)
    查询重加载(True)
      
def 操作密码表格(event):            # # #1平台 #2账号 #3密码 #4备注 #5复制密码 #6删除(以平台+分隔符"x"+账号合并起来为唯一标志)
    选定行 = 密码表格.item(密码表格.focus())      # #当用户单击左键并弹起时,获得选中行全部内容
    选定列号 = 密码表格.identify_column(event.x)      # #获得列号格式为字符串,例如 #1 #2 #3,第一列是#1
    if 选定行['values'] == '':
      return
    选定单元格内容 = 选定行['values'])-1]      # #获得选定单元格内容
    选定行标志 = str(选定行['values']) + "x" + str(选定行['values'])
   
    # print(选定行['values'])      # #这个指的是选定行的内容
    # print(选定列号)      # #这个指的是选定列序号,从#1开始
    # print(选定单元格内容)      # #选定哪个单元格是哪个单元格内容
    # print(选定行标志)      # #这个指的是 平台x账号

    平台输入框.delete(0,tkinter.END)      # #清空
    账号输入框.delete(0,tkinter.END)      # #清空
    密码输入框.delete(0,tkinter.END)      # #清空
    备注输入框.delete(0,tkinter.END)      # #清空

    if 选定列号 == "#1" or 选定列号 == "#2" or 选定列号 == "#3" or 选定列号 == "#4":      # #第1234列是表格内容
      平台输入框.insert(0,str(选定行['values']))      # #写入
      账号输入框.insert(0,str(选定行['values']))      # #写入
      密码输入框.insert(0,str(选定行['values']))      # #写入
      备注输入框.insert(0,str(选定行['values']))      # #写入
      提示标签.configure(text="内容已读取!")


    elif 选定列号 == "#5":      # #第5列是复制
      print("复制密码!")
      pyperclip.copy(str(选定行['values']))      # #密码放到剪切板
      提示标签.configure(text="密码已复制!")

    elif 选定列号 == "#6":      # #第6列是删除
      print("删除密码!")
      
      全部内容 = []
      with open(密码本, "r", encoding='utf-8') as 文件:
            for 行 in 文件:
                全部内容.append(行)

      查询的平台 = str(选定行['values']) + "x" + str(选定行['values'])
      for 行 in 全部内容:
            平台, 账号, 密码, 备注 = 行.strip().split(' ')
            if 查询的平台 == str(平台 + "x" + 账号):
                print("有待删除的平台账号,确定删除吗!")
                信息确认 = tkinter.messagebox.askquestion(title='注意!',message='确定删除吗!')# 信息确认弹窗 是 yes或 否 no

      if 信息确认 == "yes":
            pass
      elif 信息确认 == "no":
            提示标签.configure(text="取消删除!")
            return
      with open(密码本, "w", encoding='utf-8') as 文件:
            for 行 in 全部内容:
                平台, 账号, 密码, 备注 = 行.strip().split(' ')
                if 查询的平台 == str(平台 + "x" + 账号):
                  pass
                else:
                  文件.write(行)

      提示标签.configure(text="密码已删除!")
      查询重加载(True)

def 写入随机密码(event):
    随机密码 = 生成随机密码()
    提示标签.configure(text="随机密码已写入!")

    # 写入输入框
    密码输入框.delete(0,tkinter.END)
    密码输入框.insert(0,随机密码)

'''
动作绑定
'''
查询输入框.bind('<Return>', 查询操作)      # #绑定一个函数到回车键,当用户在输入框中按下回车键时触发

查询按钮.bind('<Button-1>', 查询操作)      # #绑定一个函数到左键,当用户在单击左键时触发

添加按钮.bind('<Button-1>', 添加密码)      # #绑定一个函数到左键,当用户在单击左键时触发

添加按钮.bind('<ButtonRelease-1>', 查询重加载)      # #绑定一个函数到左键,当用户在单击左键时触发

重置按钮.bind('<Button-1>', 重置输入框)      # #绑定一个函数到左键,当用户在单击左键时触发

修改按钮.bind('<Button-1>', 修改操作)      # #绑定一个函数到左键,当用户在单击左键时触发

密码表格.bind('<ButtonRelease-1>', 操作密码表格)      # #绑定一个函数到左键,当用户在单击左键后松开时触发

密码标签.bind('<ButtonRelease-1>', 写入随机密码)      # #绑定一个函数到左键,当用户在单击左键后松开时触发

密码本界面.mainloop()   # #窗口持久化





2024-07-29一个超简单的密码记录管理工具。
主要是为了记录自己的一堆记不住的密码。
有简单的增删改查功能。
密码没有加密,没有使用任何第三方库。

# 通用函数
def 清空字符串空格(字符串):
    新字符串 = 字符串.replace(" ", "")
    return 新字符串

# 初始化变量
密码本 = ""
平台 = ""
账号 = ""
密码 = ""
备注 = ""

# 选择密码本
密码本 = r"密码本"

# 选择服务
def 服务():
    print("服务:")
    服务 = 清空字符串空格(input("服务:"))
    if 服务 == "0":
      查询密码()
    if 服务 == "1":
      增加一条密码()
    if 服务 == "2":
      删除一条密码()
    if 服务 == "3":
      修改一条密码()
    if 服务 == "4":
      查询全部密码()

# 查询服务
def 查询密码(密码本=密码本,平台=平台,账号=账号,密码=密码,备注=备注):
    查询的平台 = 清空字符串空格(input("平台: "))
    with open(密码本, "r", encoding='utf-8') as 文件:
      for 行 in 文件:
            平台, 账号, 密码, 备注 = 行.strip().split(' ')
            if 查询的平台.lower() in 平台.lower():
                print(f"平台:{平台} 账号:{账号} 密码:{密码} 备注:{备注}")

def 查询全部密码(密码本=密码本,平台=平台,账号=账号,密码=密码,备注=备注):
    with open(密码本, "r", encoding='utf-8') as 文件:
      for 行 in 文件:
            平台, 账号, 密码, 备注 = 行.strip().split(' ')
            print(f"平台:{平台} 账号:{账号} 密码:{密码} 备注:{备注}")

# 添加服务
def 增加一条密码(密码本=密码本,平台=平台,账号=账号,密码=密码,备注=备注):
    平台 = 清空字符串空格(input("平台: "))
    账号 = 清空字符串空格(input("账号: "))
    密码 = 清空字符串空格(input("密码: "))
    备注 = 清空字符串空格(input("备注: "))
    if 备注 == "":
      备注 = "无"
    if 平台 != "" and 账号 != "" and 密码 != "" and 备注 != "":
      with open(密码本, "a", encoding='utf-8') as 文件:
            文件.write(f"{平台} {账号} {密码} {备注}\n")
      print("添加成功!")
    else:
      print("添加失败!")

# 删除服务
def 删除一条密码(密码本=密码本,平台=平台,账号=账号,密码=密码,备注=备注):
    全部内容 = []
    with open(密码本, "r", encoding='utf-8') as 文件:
      for 行 in 文件:
            全部内容.append(行)

    查询的平台 = (input("平台: "))
    for 行 in 全部内容:
      平台, 账号, 密码, 备注 = 行.strip().split(' ')
      if 查询的平台 in 平台:
            print(f"平台:{平台} 账号:{账号} 密码:{密码} 备注:{备注}")

    删除的账号 = 清空字符串空格(input("账号: "))
    with open(密码本, "w", encoding='utf-8') as 文件:
      for 行 in 全部内容:
            平台, 账号, 密码, 备注 = 行.strip().split(' ')
            if 查询的平台 in 平台 and 账号== 删除的账号:
                pass
            else:
                文件.write(行)
               
# 修改服务
def 修改一条密码(密码本=密码本,平台=平台,账号=账号,密码=密码,备注=备注):
    全部内容 = []
    with open(密码本, "r", encoding='utf-8') as 文件:
      for 行 in 文件:
            全部内容.append(行)

    查询的平台 = (input("平台: "))
    for 行 in 全部内容:
      平台, 账号, 密码, 备注 = 行.strip().split(' ')
      if 查询的平台 in 平台:
            print(f"平台:{平台} 账号:{账号} 密码:{密码} 备注:{备注}")

    修改的账号 = 清空字符串空格(input("账号: "))
    修改的密码 = 清空字符串空格(input("密码: "))
    with open(密码本, "w", encoding='utf-8') as 文件:
      for 行 in 全部内容:
            平台, 账号, 密码, 备注 = 行.strip().split(' ')
            if 查询的平台 in 平台 and 账号== 修改的账号:
                文件.write(f"{平台} {账号} {修改的密码} {备注}\n")
            else:
                文件.write(行)

# 主程序
print("欢迎使用Python密码记录管理工具")
while(1):
    try:
      服务()
      print("\n")
    except:
      print("执行服务失败!请重试!")
      pass

HackYike 发表于 2024-7-29 12:48

莫名觉得这种小工具用汉字命名还挺好的,虽然看着很别扭但胜在通俗易懂,虽然为了这个小工具而弄个Python环境不值当,一个文本文档就解决了

feng_yin2002 发表于 2024-7-29 17:32

写文本用这个就没必要写数据库还差不多,文本都可以直接访问了就没必要用工具了

kangta520 发表于 2024-7-29 11:50

支持!谢谢分享

zht8394 发表于 2024-7-29 11:56

能普及一下Python工具怎么使用吗{:1_918:}

rsy1479 发表于 2024-7-29 12:15

感谢楼主分享(-&#128591;-)

ldsj007 发表于 2024-7-29 12:22

围观学习

sbyvaps 发表于 2024-7-29 12:40

这可以,感谢

chewenbin1234 发表于 2024-7-29 12:42

学习学习,感谢发布{:1_892:}

alongzhenggang 发表于 2024-7-29 13:09

zht8394 发表于 2024-7-29 11:56
能普及一下Python工具怎么使用吗

要有 Python环境 先安装
再把上面代码 复制粘贴到记事本后缀改.PY双击 打开

zht8394 发表于 2024-7-29 14:05

alongzhenggang 发表于 2024-7-29 13:09
要有 Python环境 先安装
再把上面代码 复制粘贴到记事本后缀改.PY双击 打开

谢谢扫盲,一直不会弄。
页: [1] 2 3
查看完整版本: Python密码记录管理工具