#python #python-3.x #persistence #snapshot #backups
#python #python-3.x #постоянство #снимок #резервные копии
Вопрос:
Я хочу отслеживать изменения, которые происходят в определенных структурах данных (словарях) в течение срока службы моей программы на Python. Мы можем добиться этого либо путем создания снимков, либо резервных копий. Резервные копии не являются «дружественными к памяти», поскольку они требуют сохранения всей структуры в памяти. Итак, самый простой способ сделать это — вместо этого сделать снимок (что-то вроде того, как Git обрабатывает файлы).
- Существуют ли в python модули, предлагающие эту функцию?
- Если нет, существуют ли какие-либо известные алгоритмы для описания изменений в структурах данных без копирования данных?
Я не хочу использовать базы данных.
Ответ №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.