Сохранить данные очереди в Python - PullRequest
0 голосов
/ 12 сентября 2018

Я написал класс 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 голосов
/ 12 сентября 2018

Сериализация и постоянство объектов Python

Вы можете использовать модуль pickle для хранения и загрузки данных на диск и с него.

  • К сохранить данные в файл, который вы можете использовать pickle.dump(obj, file)
  • В загрузить данные из данного файла использовать pickle.load(file)

Пример

import pickle

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


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

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

print(f"> saved queue: {my_queue.queue}")    

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

print(f"> loaded queue: {my_loaded_queue.queue}")

# output:
# > saved queue: [2, 1]
# > loaded queue: [2, 1]

Дополнительная информация

Дополнительную информацию можно найти в официальной документации Python в главе Постоянство .

0 голосов
/ 12 сентября 2018

вы должны сохранить его в файл и затем читать из этого файла каждый раз, когда вы запускаете вашу программу

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

будет читать каждую строку в файле отдельно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...