Как я могу использовать полочные предметы?

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

Каковы преимущества?

Некоторые из них:

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

Эти аспекты очень полезны в приложениях, которые выполняют множество обращений к большим файлам, поскольку экономия времени может быть впечатляющей.

Как я могу использовать полочные предметы?

Использовать объект полки в Python очень просто, нам просто нужно выполнить следующие шаги, когда они нам понадобятся:

1. Импорт модуля полки

Это простой шаг, и мы можем сделать это с помощью всего одной строчки кода:

import shelve

2. Открытие полки.

Эта операция позволяет нам открыть или создать (в случае, если файл не существует) объект или файл полки, мы можем выполнить эту задачу с помощью функции shelve.open, отправив имя файла в качестве аргумента.

repos = shelve.open("github_repos")

3. Добавление записей данных

Теперь нам нужно добавить данные в созданный ранее объект полки (объект репозитория). Однако у нас есть ограничение на этом шаге, в отличие от словарей, ключ полки не может быть любым типом данных, в этом случае мы должны использовать строки в качестве ключей.

repos['SimpleBuy'] = ('hgodinez89', 'Online store', '1.0')
repos['login-app'] = ('hgodinez89', 'Login', '1.0')

4. Получение записей данных

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

repos['login-app']
Output:
('hgodinez89', 'Login', '1.0')

5. Обновление записей данных

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

repos['login-app'] = ('hgodinez89', 'Login with Firebase', '1.0')

6. Закрытие полки объекта

Наконец, мы не должны забывать закрыть объект полки, над которым мы работаем (объект repos), причина в том, что иногда требуется закрытие объектов полки, чтобы внесенные вами изменения были записаны обратно в диск.

repos.close()

Здесь вы можете найти суть всего написанного ранее кода.

Следует иметь в виду, что объекты полок позволяют выполнять базовые словарные операции, назначение клавиш или поиск, del, in и метод keys.

Пока объекты полки кажутся очень крутыми, но у нас есть ограничение, которое может показаться не очень хорошим: объекты полки не подходят для многопользовательских баз данных, потому что они не обеспечивают контроль одновременного доступа .

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

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

Большое спасибо, что попали сюда. 😊 👈

Эта статья вдохновлена ​​книгой 📖 The Quick Python Book 📖, которую я рекомендую вам широко, если вы хотите знать базовые концепции языка и в то же время узнать о других сложных темах.