Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

shelve python

shelve  python

Всем привет! В данной статье мы познакомимся с модулем shelve который позволяет хранить значения списков, переменных и т. д. в файлах и получать к ним доступ по заданным ключам. Это прежде всего удобно, когда мы хотим чтобы программа при завершении работы сохраняла все свои данные и параметры для дальнейшей работы с ними. Данный модуль является стандартным в python и поэтому его не нужно скачивать и устанавливать. Итак, поехали!

Для начала работы с модулем делаем его импорт.

import shelve

Все теперь мы можем приступать к работе с данным модулем. Создаем файл для записи данных.

shelveFile = shelve.open('mydata')
shelveFile.close()

Как видите работа с данным модулем ничем не отличается от работы с обычными файлами. После выполнения данного кода у нас должен создаться файл 'mydata'. Однако если мы посмотрим на результат, то у нас вместо одного файла создаться сразу три:

mydata.dat

mydata.bak

mydata.dir

Здесь мы видим файл mydata сразу в трех расширениях dat, bak и dir. Ни в коем случае не удаляйте их. Они по сути составляют структуру одного файла.

Отлично! Теперь попробуем записать данные в файл mydata.

shelveFile = shelve.open('mydata')
count = 3
names = ['Andrey', 'Alena', 'Lena']
shelveFile['names'] = names
shelveFile['param'] = count
shelveFile.close()

Вначале я говорил что данные в файлы модуля shelve записываются по заданным ключам.

Здесь в файле mydata я создал ключ 'names' в который записал значения переменной 'names' и 'param', в него было записано значение переменной count.

После выполнения данного кода у нас обновится файл mydata и переданные в него параметры будут сохранены.

Для получения данных из файла mydata нам достаточно просто обратится к заданным ключам:

shelveFile = shelve.open('mydata')
print(shelveFile['names'])
print(shelveFile['param'])
shelveFile.close()

Вот мы и получили из файла mydata наши записанные значения, а именно список имен и число 3.

Если мы хотим перезаписать или изменить данные ключа, достаточно просто их переопределить:

shelveFile['param'] = 'Новое значение'

Для удаления ключа и его данных необходимо воспользоваться функцией pop():

shelveFile.pop('param')

В саму функцию передается название ключа который мы хотим удалить.

Также модуль shelve для удобной работы с данными файлов предоставляет следующие методы:

keys() -данный метод возвращает объект списка ключей в файле.

print(list(shelveFile.keys()))

Заметьте чтобы получить сам список нам необходимо воспользоваться функцией list().

В результате мы получим список всех ключей файла.

Мы также можем получить список значений через метод values().

print(list(shelveFile.values()))

Здесь были получены все записанные данные в файле mydata без учета ключей.

Если нужно получить все данные и их ключи, достаточно воспользоваться методом items().

print(list(shelveFile.items()))

В результате будет возвращен список кортежей(пар ключ : значение).

Для подсчета количества ключей в файле можно воспользоваться стандартной функцией len().

print(len(shelveFile))

Результатом будет количество содержащихся ключей.

Вот в принципе и все что вам нужно знать для работы с модулем shelve.

На этом у меня все. Не забывайте оставлять комментарии и подписываться в группу

вк.

Желаю вам успехов и удачи! Пока.

Оцените статью:

Статьи

Комментарии

Внимание!!! Комментарий теперь перед публикацией проходит модерацию

Все комментарии отправлены на модерацию

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm