Языки программирования

Консервация данных

На прошлом уроке мы рассмотрели как проходит работа с файлами в питоне, также при этом мы научились сохранять и получать информацию через файл в текстовом виде. В этом уроке мы разберем, как проходит консервация данных. На более простом языке — это обычная консервация помидоров. Вот только у нас вместо банки это некий файл, а вместо помидоров будут объекты — и собственно будем их консервировать на долгое время и по нужде деконсервировать и кушать.

Все данные, которые консервирует питон, будут храниться в двоичном файле, о котором можно прочесть на WiKi. Расширение этого файла не .txt, а .dat.

Готовим фундамент

В местах, где требуются от нас консервации и деконсервации данных, требуется подключать необходимый модуль pickle. Далее необходимо создать данные, которые нужно консервировать. Консервировать можно абсолютно любой тип данных. Смотрите код:

В коде выше мы используем спецификатор 'wb' при получении файла, что делает перезапись данных в файл, если они там были.

Консервация данных

Для консервации будем использовать модуль pickle. Сама консервация проходит через метод dump().

Деконсервация данных

Для деконсервации данных используем тот же pickle, только с методом load. При этом файл нужно открывать только со спецификатором на чтение rb, чтобы не перезаписать его. Смотрите код:

Что не удобно? Вы наверное заметили, что не совсем логично идет выборка. Не понятно, что присвоило в переменную a и что в b. А если законсервировано будет очень много разных данных, мы растеряемся при получении данных. Вот поэтому я рекомендую использовать только одну консервацию на один файл. Пример:

Для консервации есть еще один модуль, который разберем в следующем уроке под название shelve — с помощью него мы решим описанные выше непонятки с получением данных.