Как сделать снимок структуры данных программы в течение срока службы программы на python?

#python #python-3.x #persistence #snapshot #backups

#python #python-3.x #постоянство #снимок #резервные копии

Вопрос:

Я хочу отслеживать изменения, которые происходят в определенных структурах данных (словарях) в течение срока службы моей программы на Python. Мы можем добиться этого либо путем создания снимков, либо резервных копий. Резервные копии не являются «дружественными к памяти», поскольку они требуют сохранения всей структуры в памяти. Итак, самый простой способ сделать это — вместо этого сделать снимок (что-то вроде того, как Git обрабатывает файлы).

  1. Существуют ли в python модули, предлагающие эту функцию?
  2. Если нет, существуют ли какие-либо известные алгоритмы для описания изменений в структурах данных без копирования данных?

Я не хочу использовать базы данных.

Ответ №1:

Вы можете использовать pickle для сохранения структур данных python. Если затем вы используете модуль date (time) для создания имен файлов, вы получите что-то вроде моментального снимка:

 import pickle
import datetime

def backup(your_data):
    with open(f"backup {datetime.datetime.now()}", "wb") as file:
        pickle.dump(your_data, file)
  

Для получения данных используйте маринад.метод загрузки.

Комментарии:

1. спасибо за предложение. Сохранение данных с помощью pickle означает «сохранение» всех данных, я ищу способ отслеживать изменения без сохранения новейшей версии данных каждый раз, когда происходит изменение.

2. json более эффективен и удобочитаем, чем pickle.