如何在 python 3.8 中保存和加载来自多个输入框的输入

How to save and load input from multiple entry boxes in python 3.8

所以我完全不熟悉编码(几天前才开始),我正在创建一个客户管理器,用户可以在其中存储帐户 ID 和密码。现在如何保存输入的信息(多个输入字段)并在再次打开程序时加载它。这是代码。

import tkinter as tk


window = tk.Tk()
window.title("Account manager")
window.geometry("250x250")

accesscode = ""




def add():
    ID = tk.Label(root, text="Account/ID:")
    ID.pack()
    global Account
    Account = tk.Entry(root, width=35, show="*")
    Account.pack()
    PW = tk.Label(root, text="Password")
    PW.pack()
    global Password
    Password = tk.Entry(root, width=35, show="*")
    Password.pack()
    linebreak = tk.Label(root, text=" ")
    linebreak.pack()



def show():
    Account.config(show="")
    Password.config(show="")

def granted():
    if Access_code_entry.get() == accesscode:
        window.destroy()
        global root
        root = tk.Tk()
        root.title("Account Manager")
        root.geometry("450x450")
        Welcome_message = tk.Label(root, text='Welcome')
        Welcome_message.pack(padx=20, pady=0)
        Add = tk.Button(root, text="+", command=add)
        Add.pack()
        Show = tk.Button(root, text="SHOW", width=4, command=show)
        Show.pack()
        save_button = tk.Button(root, text="Save")
        save_button.pack()
        add()
    else:
        window.destroy()


Ask_code = tk.Label(window, text="Enter the main access code:")
Ask_code.pack()

Access_code_entry = tk.Entry(window, width=35, show="*")
Access_code_entry.insert("0", accesscode)
Access_code_entry.pack()

Access = tk.Button(window, text="Enter", width=5, command=granted)
Access.pack()


window.mainloop()

一般情况下,您可以将数据保存在本地机器上,也可以保存到云端。

我假设您想在本地保存数据,所以这里是您要执行的步骤。我发现将一个大流程分解成多个步骤可以更容易地找到我需要的信息。

首先,我建议您将所有数据收集到一个对象中,无论是列表 [] 还是字典 {}。对于程序中的每个条目小部件,您需要从该条目获取数据,并将其放入您的对象中。

一旦您拥有一个包含您要保存的所有数据的对象,您将需要将它保存到一个文件中。此步骤需要您在您选择的位置创建一个新文件,并将文件的内容设置为您的对象。

要检索数据,您需要打开之前保存的文件,复制其中的数据,并将列表或字典的内容分发到程序中相应的条目小部件。

找到有关如何完成每个步骤的答案对您来说应该更容易找到,尽量不要被必要的步骤数所淹没。 :)

我个人认为 Effbot.org 是与 tkinter 相关的任何内容的重要资源。

祝你好运!