导入使用pickle存储的列表以及使用Listbox查看该列表时恢复计数值

2024-10-01 07:12:31 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑:我决定使用pickle并尝试这种方法。。你知道吗

我正在使用的应用程序有一个为企业创建发票的功能。每个发票都会按照顺序创建的发票数量进行适当的计数和编号。此发票作为字典存储在列表中。然后将此列表与pickle一起导出到一个文件中。现在,我的问题是,我想加载pickle文件,加载列表并按照发票号的顺序保存,同时查看列表框中已存储在外部文件中的订单。你知道吗

这将是存储字典并加载外部文件的列表:

import os
import pickle  
file_path = "/Users/user1/Documents/storage/xoomdatabase.txt"
xoomDatabase = []

loadLis = open(file_path, "r")
dalis = pickle.load(loadLis)
loadLis.close()
xoomDatabase.append(dalis)
print(dalis)

此列表框显示存储在xoomDatabase列表中的所有发票:

class AccessDatabase:
    def __init__(self, master):
        master.title("Imprint Plus Manager")
        self.master = master


        self.frame_header = ttk.Frame(self.master)
        self.frame_header.pack()

        self.frame_header.config(height = 40, width = 100)
        self.frame_header.config(relief = RIDGE)
        ttk.Label(self.frame_header, text = "Ordenes").grid()

        self.frame_verDatabase = Listbox(master, selectmode = BROWSE)
        self.frame_verDatabase.insert(END, *Database.xoomDatabase) 
        self.frame_verDatabase.pack()

        self.frame_verDatabase.config(height = 70, width = 150)

下面是我用来pickle dump的函数:

def closeApp(self):
        with open(file_path, "wb") as fout:
            pickle.dump(Database.xoomDatabase, fout)
        self.master.destroy()

为了进一步解释我想要什么: 例如; 我今天创建了4张发票,分别编号为发票1、发票2等。 我用pickle保存了名单。 再次打开我的应用程序,现在我想继续创建发票开始从最后一个数字的发票计数,所以它将开始保存从发票#5,发票#6等。 另外,当我查看列表框时,我希望看到从invoice#1开始创建的所有发票。你知道吗


Tags: 文件pathselfmasterconfig应用程序列表发票