在Python中保存队列数据

时间:2018-09-12 12:02:36

标签: python database queue

我写了一个Python类Queue。此类基本上添加,删除和重新排列队列中的数据。

如何保存队列的数据?每当我重新运行代码时,队列中的所有数据都会丢失。

如何保存数据,以便可以使用以前保存的数据?

这是相同代码的小代码。

class Queue:

    def __init__(self):
        self.queue = list()

    def add(self, item):
        if item not in self.queue:
            self.queue.insert(0, item)
            return True
        return False

    def remove(self):
        print("Element Popped")
        return self.queue.pop()

    def size(self):
        return len(self.queue)

    def search_queue(self, item):
        with queue.mutex:
            if item in self.queue:
                flag = 1
            else:
                flag = 0
            return flag

    def arrange_queue(self, item):
        ..............
        ..........
        .....

2 个答案:

答案 0 :(得分:2)

Python对象序列化和持久性

您可以使用pickle模块在​​磁盘上进行数据存储和加载。


存储数据

要将数据存储到文件中,可以使用pickle.dump(obj, file)方法:

import pickle

my_queue = Queue()
my_queue.add(...) # edit your queue & add elements as you wish

with open("my_saved_queue.obj","wb+") as queue_save_file:
    pickle.dump(my_queue, queue_save_file)

加载数据

要使用给定文件加载数据,请使用pickle.load(file)方法:

import pickle

with open("my_saved_queue.obj","rb") as queue_save_file:
    my_queue = pickle.load(queue_save_file)

其他信息

更多信息可以在官方Python文档的Persistence一章中找到。

答案 1 :(得分:1)

您必须将其保存到文件中,然后在每次运行程序时从该文件中读取

def save(list) file=open('filename',r+) for item in list: file.write(item) file.write('\n') file.close()

r +是您打开文件的方式,它意味着一起读写,因此以后您可以按以下方式从文件中读取

for line in file.readlines(): print line

它将分别读取文件中的每一行